a-newcomer-reaches-a-first-verified-intent — A newcomer reaches an intent whose verdict is satisfied, in a repository of their own, using only what the getting-started page shows
A criterion can cite the repository's own declared verification; documented commands take a newcomer from a proposal to a satisfied verdict; a scripted stage proves the path with zero undocumented commands; newcomer trials under a registered protocol are published on the T6 row.
PLANNED 0 of 5 issues done
- ready
- 1
- blocked
- 4
- active
- 0
- verify
- 0
- done
- 0
- cancelled
- 0
Problem
T6 of the owner's report of 2026-10-19 asks that a new user complete a first verified intent without knowing internal doctrines, registries or command archaeology. Today that is impossible in a foreign repository: a test criterion must name a path under test/cases/ or apps/majordomus-cli/tests/ (apps/majordomus-cli/src/intent.rs:1092-1112), a command criterion is never met (intent.rs:1131-1135 derives NotDerivable), intents.propose writes no criterion (capability/builtin/intents.rs:15 and :590) and no command adds one, and the getting-started page (site/templates/getting-started.html:10-32) and docs/ADOPTION.md never mention an intent.
Outcome
A criterion can cite the repository's own declared verification; documented commands take a newcomer from a proposal to a satisfied verdict; a scripted stage proves the path with zero undocumented commands; newcomer trials under a registered protocol are published on the T6 row.
Current state
intent.rs:1183-1193 test_id accepts a path under test/cases/ or apps/majordomus-cli/tests/, or suite: and crate: prefixes. apps/majordomus-cli/src/evidence/record.rs:1-10 records only test/run.sh reports and cargo test output. grep -n intent docs/ADOPTION.md returns nothing. Case 2978 holds intents.propose and case 367 holds satisfaction by evidence.
Desired state
A verify: reference resolves against the effective profile's verification commands; majordomus evidence record records such a run; an intent criterion writer exists; getting-started shows the path; case 1024 proves it; the T6 row reads a computed status.
Scope
- apps/majordomus-cli/src/intent.rs
- apps/majordomus-cli/src/evidence/record.rs
- apps/majordomus-cli/src/evidence/ledger.rs
- apps/majordomus-cli/src/commands/evidence.rs
- apps/majordomus-cli/src/capability/builtin/intents.rs
- apps/majordomus-cli/src/commands/intent.rs
- apps/majordomus-cli/tests/intent.rs
- test/cases/367_an_intent_is_satisfied_only_by_evidence.sh
- test/cases/2978_an_intent_is_proposed_by_a_capability.sh
- site/templates/getting-started.html
- site/content/getting-started.md
- docs/ADOPTION.md
- scripts/ci/install-check
- test/cases/1024_an_installed_release_serves_a_foreign_repository.sh
- .ai/repo/workflows
- .ai/repo/workflows/README.md
- .ai/repo/benchmarks
Out of scope
- Planning milestones for a newcomer's intent; the verdict derives from criteria alone (ADR 0107)
- The ten-minute refusal bar of a-stranger-adopts-it-unaided
- Non-technical users
Acceptance criteria
- In a fixture repository with pytest-style tests, a criterion naming its declared verification becomes current after a recorded passing run and the verdict reads satisfied
- The scripted stage counts zero commands beyond the getting-started page
- Every newcomer trial is committed and published, failed ones included
Validation
- majordomus plan validate
Risks
- Newcomer trials depend on real people; the milestone cannot close by effort alone
- A doctrine-reference count by pattern can miss paraphrase; it counts declared patterns and says so
- Adding a criterion writer touches the rule of ADR 0144 that a proposal carries no criterion; the writer is a separate capability so the proposal rule stands
Issues
Each one is an execution contract with its own acceptance criteria, validation command and required evidence. The wave column is the layer of the dependency graph it sits in.
| issue | status | wave | depends on | title |
|---|---|---|---|---|
| I3395 | READY | 0 | — | An intent criterion can cite a verification the repository's profile declares, and a recorded passing run of it at the current tree makes the criterion current |
| I3396 | BLOCKED | 1 | I3395 | A documented command adds a criterion to a proposed intent, and the getting-started page shows the path from a proposal to a satisfied verdict |
| I3397 | BLOCKED | 4 | I3396, I3361 | install-check's first-intent stage reaches a satisfied verdict in a named repository with only the getting-started commands, and counts the doctrine its output exposes |
| I3398 | BLOCKED | 2 | I3352, I3353, I3396 | The T6 protocol says who counts as a newcomer, what each trial records and how many must reach a satisfied verdict unaided, before any trial runs |
| I3399 | BLOCKED | 3 | I3398 | Newcomer trials are run as the protocol declares, recorded as they happened, and the T6 verdict is published with every trial |
The graph
flowchart LR
I3395["I3395<br/>An intent criterion can cite a verification the repository's profile declares, and a recorded passing run of it at the current tree makes the criterion current"]:::ready
I3396["I3396<br/>A documented command adds a criterion to a proposed intent, and the getting-started page shows the path from a proposal to a satisfied verdict"]:::blocked
I3397["I3397<br/>install-check's first-intent stage reaches a satisfied verdict in a named repository with only the getting-started commands, and counts the doctrine its output exposes"]:::blocked
I3398["I3398<br/>The T6 protocol says who counts as a newcomer, what each trial records and how many must reach a satisfied verdict unaided, before any trial runs"]:::blocked
I3399["I3399<br/>Newcomer trials are run as the protocol declares, recorded as they happened, and the T6 verdict is published with every trial"]:::blocked
I3395 --> I3396
I3396 --> I3397
I3396 --> I3398
I3398 --> I3399
classDef done stroke:#16a34a,fill:#dcfce7,color:#14532d,stroke-width:2px
classDef active stroke:#2563eb,fill:#eff6ff,color:#1e3a8a,stroke-width:2px
classDef verify stroke:#7c3aed,fill:#f5f3ff,color:#4c1d95,stroke-width:2px
classDef ready stroke:#0891b2,fill:#ecfeff,color:#164e63,stroke-width:2px
classDef planned stroke:#0891b2,fill:#ecfeff,color:#164e63,stroke-width:2px
classDef blocked stroke:#b45309,fill:#fffbeb,color:#78350f,stroke-width:2px
classDef cancelled stroke:#6b7280,fill:#f9fafb,color:#374151,stroke-width:2px
classDef superseded stroke:#6b7280,fill:#f9fafb,color:#374151,stroke-width:2pxLinked from this diagram (5)
- I3395 An intent criterion can cite a verification the repository's profile declares, and a recorded passing run of it at the current tree makes the criterion current
- I3396 A documented command adds a criterion to a proposed intent, and the getting-started page shows the path from a proposal to a satisfied verdict
- I3397 install-check's first-intent stage reaches a satisfied verdict in a named repository with only the getting-started commands, and counts the doctrine its output exposes
- I3398 The T6 protocol says who counts as a newcomer, what each trial records and how many must reach a satisfied verdict unaided, before any trial runs
- I3399 Newcomer trials are run as the protocol declares, recorded as they happened, and the T6 verdict is published with every trial
Canonical record: .ai/repo/project/milestones/a-newcomer-reaches-a-first-verified-intent.yaml. Read it back with majordomus plan show a-newcomer-reaches-a-first-verified-intent.