fix(wayfinder): simplify map references

This commit is contained in:
2026-07-31 16:03:00 -04:00
parent 80cecf3350
commit 96f795a63a
2 changed files with 15 additions and 14 deletions

View File

@@ -25,7 +25,8 @@ Never use a bare identifier as a human-facing reference.
## Map ## Map
The map is the effort's root artifact and has no `parent`. The map is the effort's root artifact and has no `parent`.
It is an index rather than the store for ticket resolutions. It is a route summary rather than the store for ticket resolutions.
Only the Frontier links to tickets or other artifacts.
```markdown ```markdown
--- ---
@@ -48,9 +49,9 @@ tags:
- [[<open-unblocked-unclaimed-ticket>]] - [[<open-unblocked-unclaimed-ticket>]]
## Resolutions so far ## Decisions so far
<one entry per resolved ticket, linking to the canonical result> <one plain-language decision per resolved ticket, without artifact links>
## Not yet specified ## Not yet specified
@@ -63,14 +64,13 @@ tags:
Map status is `open` while any live ticket or fog remains and `complete` when neither remains. Map status is `open` while any live ticket or fog remains and `complete` when neither remains.
The Frontier is a derived navigation index. The Frontier is a derived navigation index and the map's only artifact-link section.
Ticket metadata is authoritative. Ticket metadata is authoritative.
Repair the Frontier whenever it is missing, stale, or inconsistent with ticket state. Repair the Frontier whenever it is missing, stale, or inconsistent with ticket state.
Order Frontier links by artifact identifier unless the user chooses another ticket. Order Frontier links by artifact identifier unless the user chooses another ticket.
For a resolved Grill or Task ticket, link the ticket and give a one-line gist. Under **Decisions so far**, record one concise, self-contained decision for each resolved ticket.
For a resolved Research or Prototype ticket, give the ticket's gist once and nest links to every result artifact beneath it. Do not link the ticket or its result artifacts, identify the ticket, or copy supporting detail from the canonical resolution into the map.
Do not copy the resolution into the map.
## Tickets ## Tickets
@@ -125,8 +125,8 @@ Use `PI_SESSION_ID` when available and an equivalent harness session identifier
Claims do not expire automatically. Claims do not expire automatically.
The acting agent uses the available context to recover an abandoned claim. The acting agent uses the available context to recover an abandoned claim.
Only resolved tickets appear under **Resolutions so far**. Only resolved tickets contribute decisions under **Decisions so far**.
An out-of-scope ticket is closed and linked from **Out of scope** with the reason it lies beyond the destination. An out-of-scope ticket is closed, while **Out of scope** states the excluded work and reason in plain language without linking or identifying the ticket.
## Results ## Results

View File

@@ -61,8 +61,8 @@ One fog entry may become several tickets or disappear as the frontier advances.
The destination fixes scope. The destination fixes scope.
Work beyond it belongs under **Out of scope**, never under **Not yet specified**. Work beyond it belongs under **Out of scope**, never under **Not yet specified**.
When an existing ticket proves to be beyond the destination, mark it out of scope and link it from that section with the reason. When an existing ticket proves to be beyond the destination, mark it out of scope and summarize the excluded work and reason in that section without an artifact link.
Do not record a scope boundary as a resolution on the route. Do not record a scope boundary as a decision on the route.
## Select the mode ## Select the mode
@@ -98,7 +98,7 @@ Never resolve more than one non-Research ticket in a session.
1. **Orient.** 1. **Orient.**
Read the map at low resolution rather than loading every ticket. Read the map at low resolution rather than loading every ticket.
Reconcile its derived Frontier against ticket metadata. Reconcile its derived Frontier against ticket metadata.
Done when the destination, Notes, prior resolutions, fog, scope boundary, and current Frontier agree with the artifacts. Done when the destination, Notes, prior decisions, fog, scope boundary, and current Frontier agree with the artifacts.
2. **Claim one ticket.** 2. **Claim one ticket.**
Use the user-named ticket when it is actionable. Use the user-named ticket when it is actionable.
Otherwise take the first Frontier ticket in artifact-identifier order. Otherwise take the first Frontier ticket in artifact-identifier order.
@@ -110,8 +110,9 @@ Never resolve more than one non-Research ticket in a session.
Load related artifacts only when needed. Load related artifacts only when needed.
Done when the question has a resolution or the prerequisite Task is complete. Done when the question has a resolution or the prerequisite Task is complete.
4. **Record the resolution.** 4. **Record the resolution.**
Persist the canonical result, resolve the ticket, and append its one-line gist and artifact links under the map's **Resolutions so far** according to [`ARTIFACTS.md`](ARTIFACTS.md). Persist the canonical result, resolve the ticket, and append its concise decision under the map's **Decisions so far** according to [`ARTIFACTS.md`](ARTIFACTS.md).
Done when the resolution lives in exactly one canonical place and the map points to it without restating it. Do not link or identify the resolved ticket or its result artifacts from the map.
Done when the resolution lives in exactly one canonical place and the map states only the resulting decision.
5. **Advance the frontier.** 5. **Advance the frontier.**
Create tickets surfaced by the resolution and wire their blockers. Create tickets surfaced by the resolution and wire their blockers.
Graduate newly precise fog, remove invalidated tickets, move beyond-destination work out of scope, and recompute the Frontier. Graduate newly precise fog, remove invalidated tickets, move beyond-destination work out of scope, and recompute the Frontier.