yaaw-se 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/README.md +10 -0
  2. package/dist/cli/commands/doctor.d.ts +1 -0
  3. package/dist/cli/commands/doctor.js +1 -1
  4. package/dist/cli/commands/doctor.js.map +1 -1
  5. package/dist/cli/commands/install.d.ts +2 -1
  6. package/dist/cli/commands/install.js +8 -4
  7. package/dist/cli/commands/install.js.map +1 -1
  8. package/dist/cli/commands/status.d.ts +19 -0
  9. package/dist/cli/commands/status.js +5 -0
  10. package/dist/cli/commands/status.js.map +1 -1
  11. package/dist/cli/main.js +4 -2
  12. package/dist/cli/main.js.map +1 -1
  13. package/dist/installer/migrations/index.d.ts +1 -1
  14. package/dist/installer/migrations/index.js +1 -1
  15. package/dist/installer/plan.js +10 -0
  16. package/dist/installer/plan.js.map +1 -1
  17. package/dist/installer/status.d.ts +19 -0
  18. package/dist/installer/status.js +52 -2
  19. package/dist/installer/status.js.map +1 -1
  20. package/dist/installer/transaction.js +2 -1
  21. package/dist/installer/transaction.js.map +1 -1
  22. package/dist/installer/types.d.ts +4 -0
  23. package/dist/installer/verify.js +3 -1
  24. package/dist/installer/verify.js.map +1 -1
  25. package/dist/payload/payload-files.json +67 -57
  26. package/dist/payload/payload.json +1 -1
  27. package/dist/payload/yaaw-core/system/core/artifact-model.md +7 -1
  28. package/dist/payload/yaaw-core/system/core/authority.md +6 -0
  29. package/dist/payload/yaaw-core/system/core/execution-context.md +10 -0
  30. package/dist/payload/yaaw-core/system/core/framework-integrity.md +60 -0
  31. package/dist/payload/yaaw-core/system/core/invalidation.md +9 -2
  32. package/dist/payload/yaaw-core/system/core/io-contract.md +5 -0
  33. package/dist/payload/yaaw-core/system/core/recovery.md +7 -2
  34. package/dist/payload/yaaw-core/system/core/routing.md +17 -13
  35. package/dist/payload/yaaw-core/system/core/state-model.md +8 -0
  36. package/dist/payload/yaaw-core/system/core/transitions.md +6 -1
  37. package/dist/payload/yaaw-core/system/registries/role-io.json +148 -5
  38. package/dist/payload/yaaw-core/system/registries/routing-policy.json +63 -6
  39. package/dist/payload/yaaw-core/system/registries/transitions.json +171 -22
  40. package/dist/payload/yaaw-core/system/roles/implementer.md +3 -0
  41. package/dist/payload/yaaw-core/system/roles/orchestrator.md +11 -10
  42. package/dist/payload/yaaw-core/system/roles/planner.md +3 -0
  43. package/dist/payload/yaaw-core/system/roles/prd.md +3 -0
  44. package/dist/payload/yaaw-core/system/roles/reviewer.md +3 -0
  45. package/dist/payload/yaaw-core/system/schemas/handoff.schema.json +210 -25
  46. package/dist/payload/yaaw-core/system/schemas/observed-state.schema.json +160 -15
  47. package/dist/payload/yaaw-core/system/templates/handoff.json +21 -2
  48. package/dist/payload/yaaw-core/system/templates/observed-state.json +12 -0
  49. package/dist/payload/yaaw-core/system/tools/framework-integrity.mjs +151 -0
  50. package/dist/payload/yaaw-core/system/workflows/orchestration/determine-next-action.md +12 -7
  51. package/dist/payload/yaaw-core/system/workflows/orchestration/dispatch.md +17 -12
  52. package/dist/payload/yaaw-core/system/workflows/orchestration/inspect-state.md +9 -8
  53. package/dist/payload/yaaw-core/system/workflows/orchestration/reconcile-state.md +6 -0
  54. package/dist/payload/yaaw-core/system/workflows/orchestration/route.md +8 -7
  55. package/dist/payload/yaaw-core/system/workflows/review/record-review.md +8 -7
  56. package/dist/payload/yaaw-core/system/workflows/review/review-ticket.md +5 -1
  57. package/package.json +1 -1
@@ -2,6 +2,8 @@
2
2
 
3
3
  State names are not enough; only the transitions below are legal unless an explicit recovery rule documents a narrower evidence-backed exception.
4
4
 
5
+ In the machine registry, `owner` is the semantic decision authority and `state_writer` is the role permitted to persist the resulting lifecycle mutation. Project-state ledger writes are performed by Orchestrator after validating the durable basis. This does not transfer product, planning, implementation, or acceptance authority to Orchestrator.
6
+
5
7
  The machine-readable transition table used by conformance tests lives in `.yaaw-core/system/registries/transitions.json`. This document remains the human-readable explanation and CI checks the registry against workflow IDs and the project-state schema.
6
8
 
7
9
  ## Ticket transitions
@@ -23,9 +25,12 @@ The machine-readable transition table used by conformance tests lives in `.yaaw-
23
25
  | REPLAN_REQUIRED | DRAFT | Planner | contract revised but not yet re-admitted |
24
26
  | REPLAN_REQUIRED | READY | Planner | revised contract passes readiness and dependencies |
25
27
  | BLOCKED | DRAFT/READY/IN_PROGRESS/REVIEW_REQUIRED/REPAIR_REQUIRED/REPLAN_REQUIRED | owning role | blocker resolved and prior valid boundary proven |
26
- | PASS | REPLAN_REQUIRED | Orchestrator/Planner | upstream revision invalidates current acceptance |
28
+ | PASS | REVIEW_REQUIRED | Orchestrator recovery | source contract remains current but review/verification repository basis is missing, stale, or unverifiable |
29
+ | PASS | REPLAN_REQUIRED | Orchestrator/Planner | upstream source/contract revision invalidates current acceptance |
27
30
  | PASS | CANCELLED | Human/Planner | accepted scope explicitly removed; history preserved |
28
31
 
32
+ Repository identity mismatch alone does not establish `REPLAN_REQUIRED`.
33
+
29
34
  Forbidden examples: `DRAFT -> PASS`, `READY -> PASS`, `REPAIR_REQUIRED -> PASS`, or Implementer-authored `PASS`.
30
35
 
31
36
  ## Project transitions
@@ -1,10 +1,153 @@
1
1
  {
2
2
  "schema": "yaaw.role-io/v1",
3
3
  "roles": {
4
- "prd": {"reads": ["product", "state"], "writes": ["product"], "forbidden_writes": ["engineering", "engineering_research", "spec", "ticket", "application_files", "evidence", "review", "observed_state", "handoff", "state"]},
5
- "planner": {"reads": ["product", "engineering", "engineering_research", "spec", "ticket", "project_rule", "repository"], "writes": ["engineering", "engineering_research", "spec", "ticket", "project_rule"], "forbidden_writes": ["product", "application_files", "evidence", "review", "observed_state", "handoff", "state"]},
6
- "implementer": {"reads": ["product", "engineering", "engineering_research", "spec", "ticket", "project_rule", "repository", "evidence", "review", "application_files"], "writes": ["application_files", "evidence"], "forbidden_writes": ["product", "engineering", "engineering_research", "spec", "ticket", "project_rule", "review", "observed_state", "handoff", "state"]},
7
- "reviewer": {"reads": ["product", "engineering", "engineering_research", "spec", "ticket", "project_rule", "repository", "evidence", "review", "application_files"], "writes": ["review"], "forbidden_writes": ["product", "engineering", "engineering_research", "spec", "ticket", "project_rule", "application_files", "evidence", "observed_state", "handoff", "state"]},
8
- "orchestrator": {"reads": ["product", "engineering", "engineering_research", "spec", "ticket", "project_rule", "repository", "evidence", "review", "state", "observed_state", "handoff", "intent"], "writes": ["state", "observed_state", "handoff", "intent"], "forbidden_writes": ["product", "engineering", "engineering_research", "spec", "project_rule", "application_files", "evidence", "review"]}
4
+ "prd": {
5
+ "reads": [
6
+ "product",
7
+ "state"
8
+ ],
9
+ "writes": [
10
+ "product"
11
+ ],
12
+ "forbidden_writes": [
13
+ "engineering",
14
+ "engineering_research",
15
+ "spec",
16
+ "ticket",
17
+ "application_files",
18
+ "evidence",
19
+ "review",
20
+ "observed_state",
21
+ "handoff",
22
+ "state",
23
+ "installation_manifest"
24
+ ]
25
+ },
26
+ "planner": {
27
+ "reads": [
28
+ "product",
29
+ "engineering",
30
+ "engineering_research",
31
+ "spec",
32
+ "ticket",
33
+ "project_rule",
34
+ "repository"
35
+ ],
36
+ "writes": [
37
+ "engineering",
38
+ "engineering_research",
39
+ "spec",
40
+ "ticket",
41
+ "project_rule"
42
+ ],
43
+ "forbidden_writes": [
44
+ "product",
45
+ "application_files",
46
+ "evidence",
47
+ "review",
48
+ "observed_state",
49
+ "handoff",
50
+ "state",
51
+ "installation_manifest"
52
+ ]
53
+ },
54
+ "implementer": {
55
+ "reads": [
56
+ "product",
57
+ "engineering",
58
+ "engineering_research",
59
+ "spec",
60
+ "ticket",
61
+ "project_rule",
62
+ "repository",
63
+ "evidence",
64
+ "review",
65
+ "application_files"
66
+ ],
67
+ "writes": [
68
+ "application_files",
69
+ "evidence"
70
+ ],
71
+ "forbidden_writes": [
72
+ "product",
73
+ "engineering",
74
+ "engineering_research",
75
+ "spec",
76
+ "ticket",
77
+ "project_rule",
78
+ "review",
79
+ "observed_state",
80
+ "handoff",
81
+ "state",
82
+ "installation_manifest"
83
+ ]
84
+ },
85
+ "reviewer": {
86
+ "reads": [
87
+ "product",
88
+ "engineering",
89
+ "engineering_research",
90
+ "spec",
91
+ "ticket",
92
+ "project_rule",
93
+ "repository",
94
+ "evidence",
95
+ "review",
96
+ "application_files",
97
+ "state"
98
+ ],
99
+ "writes": [
100
+ "review"
101
+ ],
102
+ "forbidden_writes": [
103
+ "product",
104
+ "engineering",
105
+ "engineering_research",
106
+ "spec",
107
+ "ticket",
108
+ "project_rule",
109
+ "application_files",
110
+ "evidence",
111
+ "observed_state",
112
+ "handoff",
113
+ "state",
114
+ "installation_manifest"
115
+ ]
116
+ },
117
+ "orchestrator": {
118
+ "reads": [
119
+ "product",
120
+ "engineering",
121
+ "engineering_research",
122
+ "spec",
123
+ "ticket",
124
+ "project_rule",
125
+ "repository",
126
+ "evidence",
127
+ "review",
128
+ "state",
129
+ "observed_state",
130
+ "handoff",
131
+ "intent",
132
+ "installation_manifest"
133
+ ],
134
+ "writes": [
135
+ "state",
136
+ "observed_state",
137
+ "handoff",
138
+ "intent"
139
+ ],
140
+ "forbidden_writes": [
141
+ "product",
142
+ "engineering",
143
+ "engineering_research",
144
+ "spec",
145
+ "project_rule",
146
+ "application_files",
147
+ "evidence",
148
+ "review",
149
+ "installation_manifest"
150
+ ]
151
+ }
9
152
  }
10
153
  }
@@ -7,10 +7,67 @@
7
7
  "next_frontier_workflow": "planning.route",
8
8
  "complete_terminal": "COMPLETE",
9
9
  "ticket_state_precedence": [
10
- {"state": "REPLAN_REQUIRED", "workflow": "planning.replan"},
11
- {"state": "REPAIR_REQUIRED", "workflow": "implementation.repair-ticket"},
12
- {"state": "REVIEW_REQUIRED", "workflow": "review.review-ticket"},
13
- {"state": "IN_PROGRESS", "workflow": "orchestration.recover-interruption"},
14
- {"state": "READY", "workflow": "implementation.implement-ticket"}
15
- ]
10
+ {
11
+ "state": "REPLAN_REQUIRED",
12
+ "workflow": "planning.replan"
13
+ },
14
+ {
15
+ "state": "REPAIR_REQUIRED",
16
+ "workflow": "implementation.repair-ticket"
17
+ },
18
+ {
19
+ "state": "REVIEW_REQUIRED",
20
+ "workflow": "review.review-ticket"
21
+ },
22
+ {
23
+ "state": "IN_PROGRESS",
24
+ "workflow": "orchestration.recover-interruption"
25
+ },
26
+ {
27
+ "state": "READY",
28
+ "workflow": "implementation.implement-ticket"
29
+ }
30
+ ],
31
+ "invalidation_routes": {
32
+ "PRODUCT_SOURCE_STALE": {
33
+ "state": "REPLAN_REQUIRED",
34
+ "workflow": "planning.replan"
35
+ },
36
+ "ENGINEERING_SOURCE_STALE": {
37
+ "state": "REPLAN_REQUIRED",
38
+ "workflow": "planning.replan"
39
+ },
40
+ "SPEC_SOURCE_STALE": {
41
+ "state": "REPLAN_REQUIRED",
42
+ "workflow": "planning.replan"
43
+ },
44
+ "TICKET_SOURCE_STALE": {
45
+ "state": "REPLAN_REQUIRED",
46
+ "workflow": "planning.replan"
47
+ },
48
+ "CONTRACT_INVALIDATED": {
49
+ "state": "REPLAN_REQUIRED",
50
+ "workflow": "planning.replan"
51
+ },
52
+ "REVIEW_MISSING": {
53
+ "state": "REVIEW_REQUIRED",
54
+ "workflow": "review.review-ticket"
55
+ },
56
+ "REVIEW_REPOSITORY_STALE": {
57
+ "state": "REVIEW_REQUIRED",
58
+ "workflow": "review.review-ticket"
59
+ },
60
+ "VERIFICATION_MISSING": {
61
+ "state": "REVIEW_REQUIRED",
62
+ "workflow": "review.review-ticket"
63
+ },
64
+ "VERIFICATION_REPOSITORY_STALE": {
65
+ "state": "REVIEW_REQUIRED",
66
+ "workflow": "review.review-ticket"
67
+ },
68
+ "LEGACY_IDENTITY_UNVERIFIABLE": {
69
+ "state": "REVIEW_REQUIRED",
70
+ "workflow": "review.review-ticket"
71
+ }
72
+ }
16
73
  }
@@ -1,29 +1,178 @@
1
1
  {
2
2
  "schema": "yaaw.transitions/v1",
3
- "ticket_states": ["DRAFT", "READY", "IN_PROGRESS", "REVIEW_REQUIRED", "REPAIR_REQUIRED", "REPLAN_REQUIRED", "BLOCKED", "PASS", "CANCELLED"],
3
+ "ticket_states": [
4
+ "DRAFT",
5
+ "READY",
6
+ "IN_PROGRESS",
7
+ "REVIEW_REQUIRED",
8
+ "REPAIR_REQUIRED",
9
+ "REPLAN_REQUIRED",
10
+ "BLOCKED",
11
+ "PASS",
12
+ "CANCELLED"
13
+ ],
4
14
  "legal": [
5
- {"from": "DRAFT", "to": "READY", "owner": "planner", "workflow": "planning.create-tickets"},
6
- {"from": "DRAFT", "to": "CANCELLED", "owner": "planner", "workflow": "planning.replan"},
7
- {"from": "READY", "to": "IN_PROGRESS", "owner": "implementer", "workflow": "implementation.implement-ticket"},
8
- {"from": "READY", "to": "REPLAN_REQUIRED", "owner": "planner", "workflow": "planning.replan"},
9
- {"from": "IN_PROGRESS", "to": "REVIEW_REQUIRED", "owner": "implementer", "workflow": "implementation.verify-ticket"},
10
- {"from": "IN_PROGRESS", "to": "REPLAN_REQUIRED", "owner": "planner", "workflow": "planning.replan"},
11
- {"from": "IN_PROGRESS", "to": "BLOCKED", "owner": "implementer", "workflow": "implementation.implement-ticket"},
12
- {"from": "REVIEW_REQUIRED", "to": "PASS", "owner": "reviewer", "workflow": "review.record-review"},
13
- {"from": "REVIEW_REQUIRED", "to": "REPAIR_REQUIRED", "owner": "reviewer", "workflow": "review.record-review"},
14
- {"from": "REVIEW_REQUIRED", "to": "REPLAN_REQUIRED", "owner": "reviewer", "workflow": "review.record-review"},
15
- {"from": "REVIEW_REQUIRED", "to": "BLOCKED", "owner": "reviewer", "workflow": "review.record-review"},
16
- {"from": "REPAIR_REQUIRED", "to": "REVIEW_REQUIRED", "owner": "implementer", "workflow": "implementation.repair-ticket"},
17
- {"from": "REPAIR_REQUIRED", "to": "REPLAN_REQUIRED", "owner": "planner", "workflow": "planning.replan"},
18
- {"from": "REPLAN_REQUIRED", "to": "DRAFT", "owner": "planner", "workflow": "planning.replan"},
19
- {"from": "REPLAN_REQUIRED", "to": "READY", "owner": "planner", "workflow": "planning.replan"},
20
- {"from": "PASS", "to": "REPLAN_REQUIRED", "owner": "planner", "workflow": "planning.replan"},
21
- {"from": "PASS", "to": "CANCELLED", "owner": "planner", "workflow": "planning.replan"}
15
+ {
16
+ "from": "DRAFT",
17
+ "to": "READY",
18
+ "owner": "planner",
19
+ "workflow": "planning.create-tickets",
20
+ "state_writer": "orchestrator"
21
+ },
22
+ {
23
+ "from": "DRAFT",
24
+ "to": "CANCELLED",
25
+ "owner": "planner",
26
+ "workflow": "planning.replan",
27
+ "state_writer": "orchestrator"
28
+ },
29
+ {
30
+ "from": "READY",
31
+ "to": "IN_PROGRESS",
32
+ "owner": "implementer",
33
+ "workflow": "implementation.implement-ticket",
34
+ "state_writer": "orchestrator"
35
+ },
36
+ {
37
+ "from": "READY",
38
+ "to": "REPLAN_REQUIRED",
39
+ "owner": "planner",
40
+ "workflow": "planning.replan",
41
+ "state_writer": "orchestrator"
42
+ },
43
+ {
44
+ "from": "IN_PROGRESS",
45
+ "to": "REVIEW_REQUIRED",
46
+ "owner": "implementer",
47
+ "workflow": "implementation.verify-ticket",
48
+ "state_writer": "orchestrator"
49
+ },
50
+ {
51
+ "from": "IN_PROGRESS",
52
+ "to": "REPLAN_REQUIRED",
53
+ "owner": "planner",
54
+ "workflow": "planning.replan",
55
+ "state_writer": "orchestrator"
56
+ },
57
+ {
58
+ "from": "IN_PROGRESS",
59
+ "to": "BLOCKED",
60
+ "owner": "implementer",
61
+ "workflow": "implementation.implement-ticket",
62
+ "state_writer": "orchestrator"
63
+ },
64
+ {
65
+ "from": "REVIEW_REQUIRED",
66
+ "to": "PASS",
67
+ "owner": "reviewer",
68
+ "workflow": "review.record-review",
69
+ "state_writer": "orchestrator"
70
+ },
71
+ {
72
+ "from": "REVIEW_REQUIRED",
73
+ "to": "REPAIR_REQUIRED",
74
+ "owner": "reviewer",
75
+ "workflow": "review.record-review",
76
+ "state_writer": "orchestrator"
77
+ },
78
+ {
79
+ "from": "REVIEW_REQUIRED",
80
+ "to": "REPLAN_REQUIRED",
81
+ "owner": "reviewer",
82
+ "workflow": "review.record-review",
83
+ "state_writer": "orchestrator"
84
+ },
85
+ {
86
+ "from": "REVIEW_REQUIRED",
87
+ "to": "BLOCKED",
88
+ "owner": "reviewer",
89
+ "workflow": "review.record-review",
90
+ "state_writer": "orchestrator"
91
+ },
92
+ {
93
+ "from": "REPAIR_REQUIRED",
94
+ "to": "REVIEW_REQUIRED",
95
+ "owner": "implementer",
96
+ "workflow": "implementation.repair-ticket",
97
+ "state_writer": "orchestrator"
98
+ },
99
+ {
100
+ "from": "REPAIR_REQUIRED",
101
+ "to": "REPLAN_REQUIRED",
102
+ "owner": "planner",
103
+ "workflow": "planning.replan",
104
+ "state_writer": "orchestrator"
105
+ },
106
+ {
107
+ "from": "REPLAN_REQUIRED",
108
+ "to": "DRAFT",
109
+ "owner": "planner",
110
+ "workflow": "planning.replan",
111
+ "state_writer": "orchestrator"
112
+ },
113
+ {
114
+ "from": "REPLAN_REQUIRED",
115
+ "to": "READY",
116
+ "owner": "planner",
117
+ "workflow": "planning.replan",
118
+ "state_writer": "orchestrator"
119
+ },
120
+ {
121
+ "from": "PASS",
122
+ "to": "CANCELLED",
123
+ "owner": "planner",
124
+ "workflow": "planning.replan",
125
+ "state_writer": "orchestrator"
126
+ },
127
+ {
128
+ "from": "PASS",
129
+ "to": "REVIEW_REQUIRED",
130
+ "owner": "orchestrator",
131
+ "workflow": "orchestration.reconcile-state",
132
+ "causes": [
133
+ "REVIEW_MISSING",
134
+ "REVIEW_REPOSITORY_STALE",
135
+ "VERIFICATION_MISSING",
136
+ "VERIFICATION_REPOSITORY_STALE",
137
+ "LEGACY_IDENTITY_UNVERIFIABLE"
138
+ ],
139
+ "state_writer": "orchestrator"
140
+ },
141
+ {
142
+ "from": "PASS",
143
+ "to": "REPLAN_REQUIRED",
144
+ "owner": "orchestrator",
145
+ "workflow": "orchestration.reconcile-state",
146
+ "causes": [
147
+ "PRODUCT_SOURCE_STALE",
148
+ "ENGINEERING_SOURCE_STALE",
149
+ "SPEC_SOURCE_STALE",
150
+ "TICKET_SOURCE_STALE",
151
+ "CONTRACT_INVALIDATED"
152
+ ],
153
+ "state_writer": "orchestrator"
154
+ }
155
+ ],
156
+ "blocked_exit_targets": [
157
+ "DRAFT",
158
+ "READY",
159
+ "IN_PROGRESS",
160
+ "REVIEW_REQUIRED",
161
+ "REPAIR_REQUIRED",
162
+ "REPLAN_REQUIRED"
22
163
  ],
23
- "blocked_exit_targets": ["DRAFT", "READY", "IN_PROGRESS", "REVIEW_REQUIRED", "REPAIR_REQUIRED", "REPLAN_REQUIRED"],
24
164
  "forbidden": [
25
- {"from": "DRAFT", "to": "PASS"},
26
- {"from": "READY", "to": "PASS"},
27
- {"from": "REPAIR_REQUIRED", "to": "PASS"}
165
+ {
166
+ "from": "DRAFT",
167
+ "to": "PASS"
168
+ },
169
+ {
170
+ "from": "READY",
171
+ "to": "PASS"
172
+ },
173
+ {
174
+ "from": "REPAIR_REQUIRED",
175
+ "to": "PASS"
176
+ }
28
177
  ]
29
178
  }
@@ -15,3 +15,6 @@ Own code changes for one bounded admitted ticket at a time.
15
15
 
16
16
  ## Boundary
17
17
  Never self-approve, silently change product/architecture contracts, or implement a `REPLAN_REQUIRED`/stale ticket. Missing material decisions route back to Planner through Orchestrator. Changeability guidance improves the authorized change; it never expands ticket scope.
18
+
19
+ ## Framework boundary
20
+ Package-managed `.yaaw-core/system/**` is never a writable semantic-work surface. If a framework contract is missing, contradictory, or blocks valid work, do not edit YAAW to unblock yourself. Return `FRAMEWORK_INTEGRITY_VIOLATION`, `FRAMEWORK_INTEGRITY_UNKNOWN`, or `FRAMEWORK_CONTRACT_INCONSISTENCY` to Orchestrator with the exact evidence.
@@ -5,17 +5,18 @@ Own continuity, workspace/repository reconstruction, evidence-backed reconciliat
5
5
 
6
6
  ## Boot sequence
7
7
  1. Resolve the YAAW workspace root using `.yaaw-core/system/core/execution-context.md`; never assume provider CWD.
8
- 2. Inspect repository capability with root-anchored commands and record `READY`, `UNVERSIONED`, `UNAVAILABLE`, `ROOT_MISMATCH`, or `IDENTITY_FAILED`.
9
- 3. Inspect durable claims, active artifacts, runtime caches, and repository/application reality.
10
- 4. Revalidate or discard stale runtime handoffs.
11
- 5. Reconcile only evidence-backed inconsistencies using legal transitions.
12
- 6. Determine exactly one next canonical workflow or terminal state.
13
- 7. Populate a structured handoff from `role-io.json`, `execution-policy.json`, exact artifact references, and current repository basis.
14
- 8. Dispatch exactly one canonical workflow using the host execution mechanism defined by `.yaaw-core/system/core/dispatch-execution.md`. Prefer a fresh isolated worker for non-Orchestrator semantic roles when available.
15
- 9. After any worker completion, failure, interruption, or lost response, return to `orchestration.inspect-state` before selecting another semantic workflow.
16
- 10. Repeat until a real stop condition.
8
+ 2. Run the read-only framework integrity gate from `.yaaw-core/system/core/framework-integrity.md`. If status is not `HEALTHY`, invalidate executable handoffs, report the typed framework failure and installer repair instruction, and stop without project lifecycle mutation.
9
+ 3. Inspect repository capability with root-anchored commands and record `READY`, `UNVERSIONED`, `UNAVAILABLE`, `ROOT_MISMATCH`, or `IDENTITY_FAILED`.
10
+ 4. Inspect durable claims, active artifacts, runtime caches, and repository/application reality.
11
+ 5. Revalidate or discard stale runtime handoffs.
12
+ 6. Reconcile only evidence-backed inconsistencies using legal transitions.
13
+ 7. Determine exactly one next canonical workflow or terminal state.
14
+ 8. Populate a structured handoff from `role-io.json`, `execution-policy.json`, exact artifact references, and current repository basis.
15
+ 9. Dispatch exactly one canonical workflow using the host execution mechanism defined by `.yaaw-core/system/core/dispatch-execution.md`. Prefer a fresh isolated worker for non-Orchestrator semantic roles when available.
16
+ 10. After any worker completion, failure, interruption, or lost response, return to `orchestration.inspect-state` before selecting another semantic workflow.
17
+ 11. Repeat until a real stop condition.
17
18
 
18
19
  ## Boundary
19
- The Orchestrator is a traffic controller, not a super-agent. It must not author product decisions, architecture, implementation, research conclusions, or acceptance. Roles never privately delegate to peers; every successor is chosen here.
20
+ The Orchestrator is a traffic controller, not a super-agent. Package integrity is an execution precondition, not something Orchestrator may repair by editing YAAW. The Orchestrator never creates, edits, deletes, or weakens package-managed `.yaaw-core/system/**` content in a consumer run. It must not author product decisions, architecture, implementation, research conclusions, or acceptance. Roles never privately delegate to peers; every successor is chosen here.
20
21
 
21
22
  Child/worker text is not project truth. Durable artifacts, repository evidence, accepted reviews, and legal state transitions are authoritative.
@@ -20,3 +20,6 @@ Own engineering understanding, architecture decisions, external engineering rese
20
20
 
21
21
  ## Boundary
22
22
  Never invent product intent. Product gaps return to PRD/human authority. Planner does not accept implementation on behalf of Reviewer. Research, host expertise, changeability, and assumption-challenge guidance never authorize speculative architecture, scope creep, or unrelated refactoring.
23
+
24
+ ## Framework boundary
25
+ Package-managed `.yaaw-core/system/**` is never a writable semantic-work surface. If a framework contract is missing, contradictory, or blocks valid work, do not edit YAAW to unblock yourself. Return `FRAMEWORK_INTEGRITY_VIOLATION`, `FRAMEWORK_INTEGRITY_UNKNOWN`, or `FRAMEWORK_CONTRACT_INCONSISTENCY` to Orchestrator with the exact evidence.
@@ -17,3 +17,6 @@ Own product goals, users, behaviors, constraints, scope, non-goals, and human-ap
17
17
 
18
18
  ## Boundary
19
19
  Never silently convert a technical preference into product intent or repair downstream engineering artifacts yourself. Changed product intent triggers invalidation and returns downstream ownership to Planner.
20
+
21
+ ## Framework boundary
22
+ Package-managed `.yaaw-core/system/**` is never a writable semantic-work surface. If a framework contract is missing, contradictory, or blocks valid work, do not edit YAAW to unblock yourself. Return `FRAMEWORK_INTEGRITY_VIOLATION`, `FRAMEWORK_INTEGRITY_UNKNOWN`, or `FRAMEWORK_CONTRACT_INCONSISTENCY` to Orchestrator with the exact evidence.
@@ -20,3 +20,6 @@ Own independent acceptance judgment and `PASS`, `REPAIR`, `REPLAN`, or `BLOCKED`
20
20
  - `BLOCKED`: acceptance cannot be determined because required evidence is unavailable.
21
21
 
22
22
  Reviewer does not author implementation while acting as Reviewer. Style preference alone is never a review failure.
23
+
24
+ ## Framework boundary
25
+ Package-managed `.yaaw-core/system/**` is never a writable semantic-work surface. If a framework contract is missing, contradictory, or blocks valid work, do not edit YAAW to unblock yourself. Return `FRAMEWORK_INTEGRITY_VIOLATION`, `FRAMEWORK_INTEGRITY_UNKNOWN`, or `FRAMEWORK_CONTRACT_INCONSISTENCY` to Orchestrator with the exact evidence.