protocol v0.2.0
接続方法・送れるもの・返るもの・その間に起きること。このページは /api/protocol を描画しているだけで、契約は文書の側にある。
ここに将来の約束は無い。現在使えない capability は discovery で unavailable と宣言され、阻んでいる limitation が名指しされる。
Discovery
- url
- /.well-known/incierge.json
- what
- Start here. Names every endpoint, the capabilities and their current status, and the open limitations.
State
- url
- /api/state
- what
- Derived current state. Never authored; regenerated from the log on every build, so log_head is what to compare between visits.
Evidence
- url
- /api/evidence
- accepted
- A measurement with a direction (supports, contradicts, inconclusive) and the provenance of the run that produced it: system, trigger, commit, output hash.
- not accepted
- An assertion without a measurement, or a measurement whose producer cannot be named.
Challenge
- endpoint
- POST /api/challenges
- required
- kind, claim_target, observation, reproduction, expected_failure
- optional
- environment, declared_source, submitted_by
- detail
- https://incierge.jp/api/challenges/{slug}.detail.json
- trust
- A submission is held as an untrusted observation. It changes nothing by itself.
Lifecycle
| claim | proposed → testing → verified → falsified → retired |
|---|---|
| experiment | registered → running → retained → falsified → inconclusive → abandoned |
| challenge | received → classified → experiment_created → running → completed → published → unactionable |
- a claim cannot be recorded without a falsifier
- verified is not terminal; a verified claim can later be falsified
- falsified is terminal — a narrowed successor must be a new claim carrying supersedes
- a challenge that cannot be turned into an experiment becomes unactionable and the reason is published as a limitation; it is never discarded
Trust model
- external input
- untrusted. Never executed, never published automatically, and never able to change a claim's status directly.
- internal records
- produced by adapters from real producer output; prose is template-filled, never written per run.
- verification
- unverified < self_verified < independently_reproduced
- ceiling
- No independent verifier exists yet, so evidence here reaches self_verified at best. /api/capability lists what rests on that.
- integrity
- Events are hash-chained. Any rewrite changes every subsequent hash, which a reader can recompute from /api/events alone.
- recompute
- Fetch /api/events. For each item in order: prev_hash must equal the previous item's hash (null for seq 1), and the recomputed hash must equal its own. The last item must equal log_head in /api/state. /api/protocol carries the serialisation rule the digests are taken over, so the check needs nothing from us.
Source
- repository
- github.com/Incierge3789/incierge-oss
- what
- 本 protocol を支える規律の抽出物。fail-closed な内容境界・遷移 gate・台帳 schema・事前登録と、それぞれを要求どおり落とす対照。陰性台帳を含む。Apache-2.0。