You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs(catalog): add IP-032 completed-work archive with durable decision retention
`loopx todo archive-completed` encodes three interaction rules that no
catalog entry explains to humans:
1. a done todo carrying a durable standing decision is not a move candidate,
and the decision must still resolve as active standing authority after
the move (`retained_standing_decision_count`,
`standing_decision_authority_v0`);
2. the archive only touches the section for the requested role, so
`--role user` must leave `Agent Todo` alone while the role defaults to
`agent`;
3. without `--execute` the command is a preview that must not change the
state file.
Today `examples/control_plane/todo-archive-completed-smoke.py` and
`examples/control_plane/todo-standing-decision-authority-smoke.py` encode
this behavior but nothing in the catalog names it, which is exactly the
"a smoke encodes a behavior that is not yet explained to humans" case in
the catalog maintenance rules.
The entry explicitly separates itself from IP-020 (claim / supersede /
successor lifecycle) and IP-014 (how a decision is written): neither owns
what happens to a durable decision once the todo carrying it leaves the
active window.
Pattern-To-Canary matrix: IP-032 joins State And Boundary, and
"completed-work archive" joins that family's trigger surfaces.
The catalog smoke also gains a data-driven structural check: pattern ids
own exactly one table row, every row has its detail heading (and vice
versa), and no id is listed under more than one family in the
Pattern-To-Canary matrix, so an id collision like the one this entry
initially shipped cannot pass silently again.
Rebased onto main f4ed58d; the entry is numbered IP-032 because IP-030
(Machine Configuration Preview And Revision-Guarded Apply) and IP-031
(Manager Context Is Not Turn Authority) are already taken on main.
Validation:
- python3 examples/interaction-pattern-catalog-smoke.py -> ok (now also
enforces id uniqueness / family membership / detail-heading pairing)
- python3 examples/canary/catalog-planner-smoke.py -> ok
- python3 examples/docs-governance-smoke.py -> ok
- loopx check --scan-path docs/concepts/interaction-pattern-catalog.md
-> ok, errors=0, public boundary scan clean
- mutation check: duplicating an id or listing it under two families now
fails the new structural assertions
Role isolation is documented as a future CLI-level smoke because it is
still helper-level only; the gap is stated rather than hidden.
Docs-only; no runtime, validation, or benchmark behavior changes.
Signed-off-by: YZJF <195568136+YZJF@users.noreply.github.com>
Copy file name to clipboardExpand all lines: docs/concepts/interaction-pattern-catalog.md
+86-1Lines changed: 86 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -88,7 +88,7 @@ Map P0/P1 catalog rows to canary archetypes before picking commands:
88
88
| --- | --- | --- | --- | --- | --- |
89
89
| Work Routing | IP-001, IP-002, IP-003, IP-007, IP-008, IP-021, IP-029 | Hot-path route canary; Planning governance canary when cadence or repair is involved |`quota should-run`, `interaction_contract`, `work_lane_contract`, scheduler hint, handoff todo state | one eligible delivery fixture, one blocked/fallback fixture, one quiet or monitor fixture | agent turn routing is unsafe: it may spend, wait, notify, or choose fallback incorrectly |
90
90
| Human Decision | IP-004, IP-014, IP-017, IP-027, IP-030 | Scoped decision canary; Product/readiness canary when first-screen human copy changes | user todos, decision scope, operator-gate/reward preview, deferred resume candidates | one concrete user ask, one scoped non-blocking gate, one preview-or-append dry run | humans may be asked the wrong question, or an agent may continue without the needed decision |
91
-
| State And Boundary | IP-005, IP-006, IP-011, IP-016, IP-019, IP-020, IP-022, IP-023, IP-025, IP-026, IP-028, IP-031| Projection and boundary canary; Hot-path route canary when the projection feeds quota/status | active state, todo metadata, task graph, authority source, claim lease, connector runtime policy, public/private scan | fixture state plus structured projection check; boundary scan for touched public files | compact state and executable truth diverge, so dashboards and agents may trust stale or unsafe authority |
91
+
| State And Boundary | IP-005, IP-006, IP-011, IP-016, IP-019, IP-020, IP-022, IP-023, IP-025, IP-026, IP-028, IP-031, IP-032 | Projection and boundary canary; Hot-path route canary when the projection feeds quota/status | active state, todo metadata, task graph, authority source, claim lease, completed-work archive, connector runtime policy, public/private scan | fixture state plus structured projection check; boundary scan for touched public files | compact state and executable truth diverge, so dashboards and agents may trust stale or unsafe authority |
92
92
| Evidence Lifecycle | IP-012, IP-015 | Evidence lifecycle canary; Product/readiness canary when evidence is rendered | external handle observation, benchmark lifecycle reducer, compact result projection | compact public-safe evidence fixture with raw-material exclusion assertions | progress evidence may be missing, double-counted, or represented with unsafe raw material |
93
93
| Planning Governance | IP-010, IP-013, IP-018, IP-024 | Planning governance canary; Hot-path route canary when cadence changes affect execution | stalled run history, autonomous replan obligation, repair delta, cadence hint, plan-to-todo writeback | two-turn stalled fixture plus repair/writeback delta assertion | the agent may keep planning in prose while the machine-visible frontier stays unchanged |
| P1 | IP-025 | Experimental Diagnostic Sidecar Boundary | Runtime/protocol owners | no interruption unless an opt-in proof asks for user action | keep proof/debug verdicts as sidecar diagnostics until a product-general schema is validated |
342
342
| P1 | IP-028 | Connector Runtime Boundary | Connector/runtime owners | notify only if the required owner decision is missing | enforce runtime allow/deny policy before browser or API connector reads can autoload raw material |
343
343
| P1 | IP-031 | Manager Context Is Not Turn Authority | Manager connection owner | no interruption; retention is silent | retain group context only and act only on a provider-native mention, verified reply, or existing typed authority |
344
+
| P1 | IP-032 | Completed Work Archive With Durable Decision Retention | Archive selector plus controller | no interruption; preview-then-execute readback | treat archived done work as history, keep durable decisions authoritative, and never move another role's lane |
0 commit comments