yaaw-se 0.3.11 → 0.3.13
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.
- package/dist/installer/migrations/index.d.ts +2 -2
- package/dist/installer/migrations/index.js +2 -2
- package/dist/installer/migrations/index.js.map +1 -1
- package/dist/installer/migrations/project/index.js +2 -1
- package/dist/installer/migrations/project/index.js.map +1 -1
- package/dist/installer/migrations/project/v2-to-v3.d.ts +2 -0
- package/dist/installer/migrations/project/v2-to-v3.js +56 -0
- package/dist/installer/migrations/project/v2-to-v3.js.map +1 -0
- package/dist/installer/plan.js +98 -268
- package/dist/installer/plan.js.map +1 -1
- package/dist/installer/project-state.js +3 -13
- package/dist/installer/project-state.js.map +1 -1
- package/dist/installer/status.js +67 -231
- package/dist/installer/status.js.map +1 -1
- package/dist/installer/transaction.js +58 -109
- package/dist/installer/transaction.js.map +1 -1
- package/dist/installer/types.d.ts +5 -2
- package/dist/installer/verify.js +27 -27
- package/dist/installer/verify.js.map +1 -1
- package/dist/payload/bootstrap/claude-code.md +6 -6
- package/dist/payload/bootstrap/cline.md +8 -8
- package/dist/payload/bootstrap/codex.md +7 -7
- package/dist/payload/bootstrap/gemini-cli.md +6 -6
- package/dist/payload/payload-files.json +97 -417
- package/dist/payload/payload.json +1 -1
- package/dist/payload/skills/yaaw-create-spec/SKILL.md +2 -6
- package/dist/payload/skills/yaaw-create-ticket/SKILL.md +2 -6
- package/dist/payload/skills/yaaw-create-tickets/SKILL.md +2 -6
- package/dist/payload/skills/yaaw-implement/SKILL.md +2 -6
- package/dist/payload/skills/yaaw-orchestrator/SKILL.md +2 -3
- package/dist/payload/skills/yaaw-planner/SKILL.md +2 -6
- package/dist/payload/skills/yaaw-planning-review/SKILL.md +2 -6
- package/dist/payload/skills/yaaw-prd/SKILL.md +2 -6
- package/dist/payload/skills/yaaw-refine-prd/SKILL.md +2 -6
- package/dist/payload/skills/yaaw-repair/SKILL.md +2 -6
- package/dist/payload/skills/yaaw-review/SKILL.md +2 -6
- package/dist/payload/skills/yaaw-revise-prd/SKILL.md +2 -6
- package/dist/payload/yaaw-core/registries/skills.json +38 -0
- package/dist/payload/yaaw-core/system/SYSTEM.md +121 -0
- package/dist/payload/yaaw-core/system/engine/contracts.mjs +147 -0
- package/dist/payload/yaaw-core/system/engine/repository-identity.mjs +24 -0
- package/dist/payload/yaaw-core/system/engine/routing.mjs +153 -0
- package/dist/payload/yaaw-core/system/engine/runtime.mjs +66 -0
- package/dist/payload/yaaw-core/system/kernel.yaml +145 -0
- package/dist/payload/yaaw-core/system/modules/changeability.md +27 -0
- package/dist/payload/yaaw-core/system/roles/implementer.md +16 -12
- package/dist/payload/yaaw-core/system/roles/orchestrator.md +24 -14
- package/dist/payload/yaaw-core/system/roles/planner.md +37 -11
- package/dist/payload/yaaw-core/system/roles/prd.md +26 -18
- package/dist/payload/yaaw-core/system/roles/reviewer.md +16 -15
- package/dist/payload/yaaw-core/system/schemas/handoff.schema.json +24 -161
- package/dist/payload/yaaw-core/system/schemas/intent.schema.json +11 -64
- package/dist/payload/yaaw-core/system/schemas/observed-state.schema.json +12 -162
- package/dist/payload/yaaw-core/system/schemas/repository-identity.schema.json +12 -39
- package/dist/payload/yaaw-core/system/templates/evidence.json +1 -18
- package/dist/payload/yaaw-core/system/templates/handoff.json +11 -27
- package/dist/payload/yaaw-core/system/templates/intent.json +2 -2
- package/dist/payload/yaaw-core/system/templates/observed-state.json +5 -28
- package/dist/payload/yaaw-core/system/templates/review.md +2 -2
- package/package.json +5 -2
- package/dist/payload/yaaw-core/system/core/artifact-model.md +0 -43
- package/dist/payload/yaaw-core/system/core/authority.md +0 -21
- package/dist/payload/yaaw-core/system/core/context-loading.md +0 -56
- package/dist/payload/yaaw-core/system/core/dispatch-execution.md +0 -28
- package/dist/payload/yaaw-core/system/core/execution-context.md +0 -61
- package/dist/payload/yaaw-core/system/core/framework-integrity.md +0 -60
- package/dist/payload/yaaw-core/system/core/invalidation.md +0 -13
- package/dist/payload/yaaw-core/system/core/io-contract.md +0 -23
- package/dist/payload/yaaw-core/system/core/lifecycle.md +0 -23
- package/dist/payload/yaaw-core/system/core/recovery.md +0 -17
- package/dist/payload/yaaw-core/system/core/routing.md +0 -21
- package/dist/payload/yaaw-core/system/core/state-model.md +0 -14
- package/dist/payload/yaaw-core/system/core/transitions.md +0 -36
- package/dist/payload/yaaw-core/system/expertise/changeability/MODULE.md +0 -58
- package/dist/payload/yaaw-core/system/registries/artifacts.json +0 -99
- package/dist/payload/yaaw-core/system/registries/execution-policy.json +0 -169
- package/dist/payload/yaaw-core/system/registries/expertise.json +0 -47
- package/dist/payload/yaaw-core/system/registries/handoff-policy.json +0 -67
- package/dist/payload/yaaw-core/system/registries/paths.json +0 -18
- package/dist/payload/yaaw-core/system/registries/reconciliation-policy.json +0 -18
- package/dist/payload/yaaw-core/system/registries/role-io.json +0 -30
- package/dist/payload/yaaw-core/system/registries/routing-policy.json +0 -74
- package/dist/payload/yaaw-core/system/registries/skills.json +0 -110
- package/dist/payload/yaaw-core/system/registries/transitions.json +0 -178
- package/dist/payload/yaaw-core/system/registries/workflows.json +0 -38
- package/dist/payload/yaaw-core/system/rules/artifact-writing.md +0 -10
- package/dist/payload/yaaw-core/system/rules/assumption-challenge.md +0 -109
- package/dist/payload/yaaw-core/system/rules/changeability.md +0 -38
- package/dist/payload/yaaw-core/system/rules/durable-memory.md +0 -9
- package/dist/payload/yaaw-core/system/rules/question-format.md +0 -20
- package/dist/payload/yaaw-core/system/rules/recovery-evidence.md +0 -9
- package/dist/payload/yaaw-core/system/rules/repository-identity.md +0 -42
- package/dist/payload/yaaw-core/system/rules/research-admission.md +0 -30
- package/dist/payload/yaaw-core/system/rules/review-independence.md +0 -11
- package/dist/payload/yaaw-core/system/rules/ticket-sizing.md +0 -9
- package/dist/payload/yaaw-core/system/schemas/project-state.schema.json +0 -12
- package/dist/payload/yaaw-core/system/templates/project-state.json +0 -13
- package/dist/payload/yaaw-core/system/tools/orchestration-engine.mjs +0 -210
- package/dist/payload/yaaw-core/system/tools/orchestration-runtime.mjs +0 -46
- package/dist/payload/yaaw-core/system/tools/repository-identity.mjs +0 -92
- package/dist/payload/yaaw-core/system/workflows/implementation/implement-ticket.md +0 -18
- package/dist/payload/yaaw-core/system/workflows/implementation/repair-ticket.md +0 -17
- package/dist/payload/yaaw-core/system/workflows/implementation/select-ticket.md +0 -17
- package/dist/payload/yaaw-core/system/workflows/implementation/verify-ticket.md +0 -19
- package/dist/payload/yaaw-core/system/workflows/orchestration/determine-next-action.md +0 -24
- package/dist/payload/yaaw-core/system/workflows/orchestration/dispatch.md +0 -35
- package/dist/payload/yaaw-core/system/workflows/orchestration/inspect-state.md +0 -19
- package/dist/payload/yaaw-core/system/workflows/orchestration/reconcile-state.md +0 -19
- package/dist/payload/yaaw-core/system/workflows/orchestration/recover-interruption.md +0 -32
- package/dist/payload/yaaw-core/system/workflows/orchestration/route.md +0 -27
- package/dist/payload/yaaw-core/system/workflows/planning/create-spec.md +0 -21
- package/dist/payload/yaaw-core/system/workflows/planning/create-tickets.md +0 -50
- package/dist/payload/yaaw-core/system/workflows/planning/decision-frontier.md +0 -33
- package/dist/payload/yaaw-core/system/workflows/planning/discover.md +0 -21
- package/dist/payload/yaaw-core/system/workflows/planning/question-round.md +0 -22
- package/dist/payload/yaaw-core/system/workflows/planning/readiness-review.md +0 -33
- package/dist/payload/yaaw-core/system/workflows/planning/record-decisions.md +0 -19
- package/dist/payload/yaaw-core/system/workflows/planning/replan.md +0 -24
- package/dist/payload/yaaw-core/system/workflows/planning/research.md +0 -20
- package/dist/payload/yaaw-core/system/workflows/planning/route.md +0 -28
- package/dist/payload/yaaw-core/system/workflows/planning/write-understanding.md +0 -26
- package/dist/payload/yaaw-core/system/workflows/prd/create.md +0 -22
- package/dist/payload/yaaw-core/system/workflows/prd/question-round.md +0 -20
- package/dist/payload/yaaw-core/system/workflows/prd/readiness.md +0 -22
- package/dist/payload/yaaw-core/system/workflows/prd/record-decisions.md +0 -20
- package/dist/payload/yaaw-core/system/workflows/prd/refine.md +0 -15
- package/dist/payload/yaaw-core/system/workflows/prd/revise.md +0 -18
- package/dist/payload/yaaw-core/system/workflows/prd/route.md +0 -23
- package/dist/payload/yaaw-core/system/workflows/review/classify-findings.md +0 -17
- package/dist/payload/yaaw-core/system/workflows/review/inspect-change.md +0 -20
- package/dist/payload/yaaw-core/system/workflows/review/record-review.md +0 -19
- package/dist/payload/yaaw-core/system/workflows/review/review-ticket.md +0 -24
- /package/dist/payload/yaaw-core/system/{tools → engine}/frontmatter.mjs +0 -0
- /package/dist/payload/yaaw-core/system/{tools/framework-integrity.mjs → engine/integrity.mjs} +0 -0
- /package/dist/payload/yaaw-core/system/{expertise/frontend-design/MODULE.md → modules/frontend-design.md} +0 -0
- /package/dist/payload/yaaw-core/system/{expertise/python/MODULE.md → modules/python.md} +0 -0
- /package/dist/payload/yaaw-core/system/{expertise/security/MODULE.md → modules/security.md} +0 -0
- /package/dist/payload/yaaw-core/system/{expertise/testing/MODULE.md → modules/testing.md} +0 -0
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"yaaw-orchestrator": {
|
|
3
|
-
"role": "orchestrator",
|
|
4
|
-
"workflow_id": "orchestration.route",
|
|
5
|
-
"destination_role": "orchestrator",
|
|
6
|
-
"requested_workflow": "orchestration.route",
|
|
7
|
-
"desired_outcome": "CONTINUE",
|
|
8
|
-
"completion_kind": "CONTINUE_UNTIL_STOP",
|
|
9
|
-
"description": "Continue or recover a YAAW project by reconstructing reality and dispatching the next safe workflow."
|
|
10
|
-
},
|
|
11
|
-
"yaaw-prd": {
|
|
12
|
-
"role": "prd",
|
|
13
|
-
"workflow_id": "prd.route",
|
|
14
|
-
"destination_role": "prd",
|
|
15
|
-
"requested_workflow": "prd.route",
|
|
16
|
-
"desired_outcome": "CONTINUE_PRODUCT",
|
|
17
|
-
"completion_kind": "PRODUCT_READY",
|
|
18
|
-
"description": "Create or continue YAAW product definition, challenge material product assumptions, and route clarification or revision work."
|
|
19
|
-
},
|
|
20
|
-
"yaaw-revise-prd": {
|
|
21
|
-
"role": "prd",
|
|
22
|
-
"workflow_id": "prd.revise",
|
|
23
|
-
"destination_role": "prd",
|
|
24
|
-
"requested_workflow": "prd.revise",
|
|
25
|
-
"desired_outcome": "REVISE_PRODUCT",
|
|
26
|
-
"completion_kind": "PRODUCT_REVISION_ADVANCED",
|
|
27
|
-
"description": "Change accepted YAAW product intent and invalidate downstream engineering contracts whose basis became stale."
|
|
28
|
-
},
|
|
29
|
-
"yaaw-refine-prd": {
|
|
30
|
-
"role": "prd",
|
|
31
|
-
"workflow_id": "prd.refine",
|
|
32
|
-
"destination_role": "prd",
|
|
33
|
-
"requested_workflow": "prd.refine",
|
|
34
|
-
"desired_outcome": "REFINE_PRODUCT",
|
|
35
|
-
"completion_kind": "PRODUCT_REFINED",
|
|
36
|
-
"description": "Improve clarity and completeness of a YAAW product artifact without changing accepted product meaning."
|
|
37
|
-
},
|
|
38
|
-
"yaaw-planner": {
|
|
39
|
-
"role": "planner",
|
|
40
|
-
"workflow_id": "planning.route",
|
|
41
|
-
"destination_role": "planner",
|
|
42
|
-
"requested_workflow": "planning.route",
|
|
43
|
-
"desired_outcome": "CONTINUE_PLANNING",
|
|
44
|
-
"completion_kind": "PLANNING_READY",
|
|
45
|
-
"description": "Continue repository-backed YAAW engineering planning, challenge material technical assumptions, and advance decisions, readiness, specifications, or tickets."
|
|
46
|
-
},
|
|
47
|
-
"yaaw-planning-review": {
|
|
48
|
-
"role": "planner",
|
|
49
|
-
"workflow_id": "planning.readiness-review",
|
|
50
|
-
"destination_role": "planner",
|
|
51
|
-
"requested_workflow": "planning.readiness-review",
|
|
52
|
-
"desired_outcome": "PLANNING_REVIEW",
|
|
53
|
-
"completion_kind": "PLANNING_READINESS_DECIDED",
|
|
54
|
-
"description": "Freshly assess whether the current YAAW engineering frontier is ready for implementation without material invention."
|
|
55
|
-
},
|
|
56
|
-
"yaaw-create-spec": {
|
|
57
|
-
"role": "planner",
|
|
58
|
-
"workflow_id": "planning.create-spec",
|
|
59
|
-
"destination_role": "planner",
|
|
60
|
-
"requested_workflow": "planning.create-spec",
|
|
61
|
-
"desired_outcome": "CREATE_SPEC",
|
|
62
|
-
"completion_kind": "CURRENT_SPEC_ACCEPTED",
|
|
63
|
-
"description": "Create the next YAAW specification from an engineering frontier whose readiness is currently PASS."
|
|
64
|
-
},
|
|
65
|
-
"yaaw-create-ticket": {
|
|
66
|
-
"role": "planner",
|
|
67
|
-
"workflow_id": "planning.create-tickets",
|
|
68
|
-
"destination_role": "planner",
|
|
69
|
-
"requested_workflow": "planning.create-tickets",
|
|
70
|
-
"desired_outcome": "CREATE_TICKETS",
|
|
71
|
-
"completion_kind": "CURRENT_TICKETS_REGISTERED",
|
|
72
|
-
"description": "Create bounded YAAW implementation ticket contracts from the current accepted specification."
|
|
73
|
-
},
|
|
74
|
-
"yaaw-create-tickets": {
|
|
75
|
-
"role": "planner",
|
|
76
|
-
"workflow_id": "planning.create-tickets",
|
|
77
|
-
"destination_role": "planner",
|
|
78
|
-
"requested_workflow": "planning.create-tickets",
|
|
79
|
-
"desired_outcome": "CREATE_TICKETS",
|
|
80
|
-
"completion_kind": "CURRENT_TICKETS_REGISTERED",
|
|
81
|
-
"description": "Create dependency-aware bounded YAAW implementation tickets from the current accepted specification."
|
|
82
|
-
},
|
|
83
|
-
"yaaw-implement": {
|
|
84
|
-
"role": "implementer",
|
|
85
|
-
"workflow_id": "implementation.implement-ticket",
|
|
86
|
-
"destination_role": "implementer",
|
|
87
|
-
"requested_workflow": "implementation.implement-ticket",
|
|
88
|
-
"desired_outcome": "IMPLEMENT",
|
|
89
|
-
"completion_kind": "TICKET_REVIEW_REQUIRED",
|
|
90
|
-
"description": "Implement one admitted READY YAAW ticket and produce repository-identity-bound verification evidence."
|
|
91
|
-
},
|
|
92
|
-
"yaaw-repair": {
|
|
93
|
-
"role": "implementer",
|
|
94
|
-
"workflow_id": "implementation.repair-ticket",
|
|
95
|
-
"destination_role": "implementer",
|
|
96
|
-
"requested_workflow": "implementation.repair-ticket",
|
|
97
|
-
"desired_outcome": "REPAIR",
|
|
98
|
-
"completion_kind": "TICKET_REVIEW_REQUIRED",
|
|
99
|
-
"description": "Repair a YAAW ticket in REPAIR_REQUIRED state while preserving its accepted product and engineering contract."
|
|
100
|
-
},
|
|
101
|
-
"yaaw-review": {
|
|
102
|
-
"role": "reviewer",
|
|
103
|
-
"workflow_id": "review.review-ticket",
|
|
104
|
-
"destination_role": "reviewer",
|
|
105
|
-
"requested_workflow": "review.review-ticket",
|
|
106
|
-
"desired_outcome": "REVIEW",
|
|
107
|
-
"completion_kind": "TICKET_REVIEW_APPLIED",
|
|
108
|
-
"description": "Independently review actual YAAW implementation and classify PASS, REPAIR, REPLAN, or BLOCKED against current evidence."
|
|
109
|
-
}
|
|
110
|
-
}
|
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"schema": "yaaw.transitions/v1",
|
|
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
|
-
],
|
|
14
|
-
"legal": [
|
|
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"
|
|
163
|
-
],
|
|
164
|
-
"forbidden": [
|
|
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
|
-
}
|
|
177
|
-
]
|
|
178
|
-
}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"prd.route": {"role": "prd", "workflow": ".yaaw-core/system/workflows/prd/route.md"},
|
|
3
|
-
"prd.create": {"role": "prd", "workflow": ".yaaw-core/system/workflows/prd/create.md"},
|
|
4
|
-
"prd.question-round": {"role": "prd", "workflow": ".yaaw-core/system/workflows/prd/question-round.md"},
|
|
5
|
-
"prd.record-decisions": {"role": "prd", "workflow": ".yaaw-core/system/workflows/prd/record-decisions.md"},
|
|
6
|
-
"prd.revise": {"role": "prd", "workflow": ".yaaw-core/system/workflows/prd/revise.md"},
|
|
7
|
-
"prd.refine": {"role": "prd", "workflow": ".yaaw-core/system/workflows/prd/refine.md"},
|
|
8
|
-
"prd.readiness": {"role": "prd", "workflow": ".yaaw-core/system/workflows/prd/readiness.md"},
|
|
9
|
-
|
|
10
|
-
"planning.route": {"role": "planner", "workflow": ".yaaw-core/system/workflows/planning/route.md"},
|
|
11
|
-
"planning.discover": {"role": "planner", "workflow": ".yaaw-core/system/workflows/planning/discover.md"},
|
|
12
|
-
"planning.write-understanding": {"role": "planner", "workflow": ".yaaw-core/system/workflows/planning/write-understanding.md"},
|
|
13
|
-
"planning.decision-frontier": {"role": "planner", "workflow": ".yaaw-core/system/workflows/planning/decision-frontier.md"},
|
|
14
|
-
"planning.research": {"role": "planner", "workflow": ".yaaw-core/system/workflows/planning/research.md"},
|
|
15
|
-
"planning.question-round": {"role": "planner", "workflow": ".yaaw-core/system/workflows/planning/question-round.md"},
|
|
16
|
-
"planning.record-decisions": {"role": "planner", "workflow": ".yaaw-core/system/workflows/planning/record-decisions.md"},
|
|
17
|
-
"planning.readiness-review": {"role": "planner", "workflow": ".yaaw-core/system/workflows/planning/readiness-review.md"},
|
|
18
|
-
"planning.create-spec": {"role": "planner", "workflow": ".yaaw-core/system/workflows/planning/create-spec.md"},
|
|
19
|
-
"planning.create-tickets": {"role": "planner", "workflow": ".yaaw-core/system/workflows/planning/create-tickets.md"},
|
|
20
|
-
"planning.replan": {"role": "planner", "workflow": ".yaaw-core/system/workflows/planning/replan.md"},
|
|
21
|
-
|
|
22
|
-
"implementation.select-ticket": {"role": "implementer", "workflow": ".yaaw-core/system/workflows/implementation/select-ticket.md"},
|
|
23
|
-
"implementation.implement-ticket": {"role": "implementer", "workflow": ".yaaw-core/system/workflows/implementation/implement-ticket.md"},
|
|
24
|
-
"implementation.verify-ticket": {"role": "implementer", "workflow": ".yaaw-core/system/workflows/implementation/verify-ticket.md"},
|
|
25
|
-
"implementation.repair-ticket": {"role": "implementer", "workflow": ".yaaw-core/system/workflows/implementation/repair-ticket.md"},
|
|
26
|
-
|
|
27
|
-
"review.inspect-change": {"role": "reviewer", "workflow": ".yaaw-core/system/workflows/review/inspect-change.md"},
|
|
28
|
-
"review.review-ticket": {"role": "reviewer", "workflow": ".yaaw-core/system/workflows/review/review-ticket.md"},
|
|
29
|
-
"review.classify-findings": {"role": "reviewer", "workflow": ".yaaw-core/system/workflows/review/classify-findings.md"},
|
|
30
|
-
"review.record-review": {"role": "reviewer", "workflow": ".yaaw-core/system/workflows/review/record-review.md"},
|
|
31
|
-
|
|
32
|
-
"orchestration.route": {"role": "orchestrator", "workflow": ".yaaw-core/system/workflows/orchestration/route.md"},
|
|
33
|
-
"orchestration.inspect-state": {"role": "orchestrator", "workflow": ".yaaw-core/system/workflows/orchestration/inspect-state.md"},
|
|
34
|
-
"orchestration.reconcile-state": {"role": "orchestrator", "workflow": ".yaaw-core/system/workflows/orchestration/reconcile-state.md"},
|
|
35
|
-
"orchestration.determine-next-action": {"role": "orchestrator", "workflow": ".yaaw-core/system/workflows/orchestration/determine-next-action.md"},
|
|
36
|
-
"orchestration.dispatch": {"role": "orchestrator", "workflow": ".yaaw-core/system/workflows/orchestration/dispatch.md"},
|
|
37
|
-
"orchestration.recover-interruption": {"role": "orchestrator", "workflow": ".yaaw-core/system/workflows/orchestration/recover-interruption.md"}
|
|
38
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
# Artifact writing rules
|
|
2
|
-
|
|
3
|
-
- Prefer concise durable facts over chat transcripts.
|
|
4
|
-
- Markdown artifacts use YAML frontmatter for schema/id/revision/status metadata and Markdown body for reasoning.
|
|
5
|
-
- Reference decision/artifact IDs instead of duplicating planning history.
|
|
6
|
-
- Keep product language product-focused.
|
|
7
|
-
- Separate repository observations from assumptions.
|
|
8
|
-
- Include provenance when a decision depends on a product requirement, prior decision, spec, observed code, or review finding.
|
|
9
|
-
- Reviews are append-only rounds; never overwrite prior findings.
|
|
10
|
-
- Stale/superseded artifacts remain readable and explicitly marked; do not silently rewrite history.
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
# Assumption challenge
|
|
2
|
-
|
|
3
|
-
## Purpose
|
|
4
|
-
Improve decision quality inside PRD and Planning without creating a new role, workflow, lifecycle state, artifact, or authority layer.
|
|
5
|
-
|
|
6
|
-
A challenge is warranted only when resolving it could materially change product intent, engineering design, frontier readiness, scope, failure behavior, or downstream implementation.
|
|
7
|
-
|
|
8
|
-
## Applicability
|
|
9
|
-
This rule is consumed by PRD and Planner workflows only.
|
|
10
|
-
|
|
11
|
-
- **PRD** uses it to challenge product assumptions while preserving Human/PRD authority over product intent.
|
|
12
|
-
- **Planner** uses it to challenge engineering assumptions while preserving Planner authority over engineering decisions and Human/PRD authority over product meaning.
|
|
13
|
-
- **Orchestrator** does not challenge the user semantically; it routes to the role that owns the decision.
|
|
14
|
-
- **Implementer** does not use challenge behavior to reopen accepted product or engineering contracts. Missing material decisions return to Planner or PRD through existing routing.
|
|
15
|
-
- **Reviewer** scrutinizes implementation and contracts through independent review outcomes; Reviewer does not substitute for PRD/Planning by interrogating the user.
|
|
16
|
-
|
|
17
|
-
This rule does not introduce a public skill, `*.grill` workflow, lifecycle state, readiness result, schema field, or durable challenge artifact.
|
|
18
|
-
|
|
19
|
-
## Core principles
|
|
20
|
-
|
|
21
|
-
### Facts before questions
|
|
22
|
-
Establish inspectable facts before asking the human. Repository-answerable facts are the active role's responsibility. Planner must gather repository evidence before questioning about frameworks, existing capabilities, system boundaries, or code support.
|
|
23
|
-
|
|
24
|
-
### Material challenge triggers
|
|
25
|
-
Challenge material assumptions only when there is a concrete reason, such as:
|
|
26
|
-
- conflict with an accepted decision;
|
|
27
|
-
- conflict with repository evidence;
|
|
28
|
-
- ambiguous terminology;
|
|
29
|
-
- an unsupported or unproven assumption;
|
|
30
|
-
- a material tradeoff or difficult-to-reverse choice;
|
|
31
|
-
- a material failure, edge-case, security, data/state, migration, scope, or compatibility implication;
|
|
32
|
-
- a user-flow contradiction or a premature abstraction.
|
|
33
|
-
|
|
34
|
-
Do not generate filler merely to demonstrate rigor.
|
|
35
|
-
|
|
36
|
-
### Attack ambiguity, not people
|
|
37
|
-
Challenge the claim or model, never the person. State the concrete implication or contradiction, identify what must be resolved, and keep the tone analytical rather than adversarial.
|
|
38
|
-
|
|
39
|
-
### Stress-test concrete scenarios
|
|
40
|
-
When material, stress-test the proposed product behavior or engineering design with concrete success, failure, edge, state-transition, security, migration, operability, and compatibility scenarios. Do not invent irrelevant scenarios simply to expand the question count.
|
|
41
|
-
|
|
42
|
-
### Decision dependencies and current frontier
|
|
43
|
-
Respect decision dependencies. Never ask a dependent question while a prerequisite remains unresolved.
|
|
44
|
-
|
|
45
|
-
Work only the current frontier:
|
|
46
|
-
- settled reusable conclusions remain known decisions;
|
|
47
|
-
- material questions answerable now belong to the current frontier;
|
|
48
|
-
- issues that depend on future evidence remain future fog.
|
|
49
|
-
|
|
50
|
-
Questions whose prerequisites are unknown stay out of the current round.
|
|
51
|
-
|
|
52
|
-
### Recommendations and user ownership
|
|
53
|
-
When meaningful alternatives exist and analysis supports a direction, include a `Recommendation:` and a short reason that exposes the actual tradeoff. Free-form answers remain first-class; options are never a forced menu.
|
|
54
|
-
|
|
55
|
-
A recommendation must not become confirmation bias. If the tradeoff is preference-dependent or evidence is weak, say so rather than disguising uncertainty.
|
|
56
|
-
|
|
57
|
-
### Do not delegate owned decisions
|
|
58
|
-
Do not hand decisions back to the human merely because alternatives exist. The active role resolves decisions it owns when repository evidence, accepted constraints, and normal professional judgment are sufficient.
|
|
59
|
-
|
|
60
|
-
Planner owns routine reversible implementation decisions such as local naming, helper decomposition, obvious repository-convention reuse, routine test organization, and other minor implementation details unless they become materially consequential.
|
|
61
|
-
|
|
62
|
-
### Persistence and fresh-context recovery
|
|
63
|
-
Persist accepted conclusions rather than a conversation transcript. Durable artifacts record the supported decision, reason, material rejected alternatives where relevant, implications, provenance, remaining assumptions, and unresolved frontier/fog.
|
|
64
|
-
|
|
65
|
-
Do not persist `User said...`, `Assistant asked...`, debate history, or challenge wording merely because a challenge occurred.
|
|
66
|
-
|
|
67
|
-
### Recompute after meaningful answers
|
|
68
|
-
After accepted answers are durably recorded, recompute the frontier. Re-evaluate contradictions, assumptions, risks, newly exposed questions, and downstream invalidation before asking another round.
|
|
69
|
-
|
|
70
|
-
### Stop when the next owner can proceed
|
|
71
|
-
Stop challenging when the next owner can proceed without inventing a material product or engineering decision. Zero questions is valid.
|
|
72
|
-
|
|
73
|
-
Do not challenge a settled decision merely to demonstrate rigor.
|
|
74
|
-
|
|
75
|
-
Do not reopen accepted decisions without new evidence, contradiction, changed intent, or explicit human request.
|
|
76
|
-
|
|
77
|
-
## PRD specialization
|
|
78
|
-
PRD challenges whether the product meaning is sufficiently coherent and intentional. It may challenge:
|
|
79
|
-
- product abstractions that are broader than the demonstrated need;
|
|
80
|
-
- user, scope, behavior, flow, constraint, and non-goal assumptions;
|
|
81
|
-
- contradictions between accepted product statements;
|
|
82
|
-
- ambiguous domain/product terminology;
|
|
83
|
-
- material failure behavior and edge cases;
|
|
84
|
-
- premature product abstractions such as generic roles/permissions when only one concrete capability distinction is established.
|
|
85
|
-
|
|
86
|
-
PRD must not decide engineering implementation decisions such as transport, database, framework, queue, cache, rendering architecture, ORM, or protocol unless the human explicitly made that method a product constraint. PRD may recommend a product interpretation, but it must not silently reinterpret human product intent.
|
|
87
|
-
|
|
88
|
-
## Planner specialization
|
|
89
|
-
Planner challenges whether accepted product intent is being interpreted and designed correctly against repository reality. It may challenge:
|
|
90
|
-
- proposed architecture that exceeds the accepted requirement;
|
|
91
|
-
- engineering assumptions contradicted by repository evidence;
|
|
92
|
-
- unnecessary abstractions and new infrastructure;
|
|
93
|
-
- material architecture/data/interface/failure/security/migration/testing/operability tradeoffs;
|
|
94
|
-
- conflicts with accepted `ENG-*` decisions or known future constraints.
|
|
95
|
-
|
|
96
|
-
Planner must use repository evidence before questioning, must not ask the human to decide routine reversible implementation decisions, and must never invent product intent. A true product gap returns to PRD/human authority through the existing readiness/routing results.
|
|
97
|
-
|
|
98
|
-
Prefer the smallest architecture justified by accepted product requirements, repository constraints, known future constraints, and material quality requirements. Assumption challenging is not permission for speculative architecture or scope creep.
|
|
99
|
-
|
|
100
|
-
## Prohibited behaviors
|
|
101
|
-
- creating `@yaaw-grill`, `@yaaw-challenge`, `prd.grill`, or `planning.grill` as parallel semantic implementations;
|
|
102
|
-
- treating the maximum question count as a target;
|
|
103
|
-
- asking repository-answerable facts;
|
|
104
|
-
- asking dependent questions before prerequisites are settled;
|
|
105
|
-
- reopening accepted decisions without a valid trigger;
|
|
106
|
-
- converting a newly discovered adjacent idea into current scope automatically;
|
|
107
|
-
- storing challenge/debate transcripts as durable project memory;
|
|
108
|
-
- allowing PRD to choose architecture or Planner to invent product meaning;
|
|
109
|
-
- allowing Orchestrator, Implementer, or Reviewer to take over PRD/Planner user-question authority.
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
# Changeability policy
|
|
2
|
-
|
|
3
|
-
The governing principle is: **make the next correct change easier without expanding the current authorized change.**
|
|
4
|
-
|
|
5
|
-
This policy is mandatory for Planner, Implementer, and Reviewer whenever software design or code is being shaped. It governs the quality of work already authorized by product/spec/ticket contracts; it never authorizes unrelated cleanup or speculative refactoring.
|
|
6
|
-
|
|
7
|
-
## 1. Keep the main path visible
|
|
8
|
-
Prefer control flow where the primary successful operation is easy to identify. Use guard clauses, extraction, or other simplifications when they reduce unnecessary nesting or branching. Do not flatten structure mechanically when nesting communicates real domain structure.
|
|
9
|
-
|
|
10
|
-
## 2. Name by domain meaning
|
|
11
|
-
Prefer names that expose business/domain meaning over generic containers such as `data`, `item`, `result`, or `obj` when a more specific concept is known. Names should reduce lookup/detective work without becoming needlessly verbose.
|
|
12
|
-
|
|
13
|
-
## 3. Contain external systems behind boundaries
|
|
14
|
-
Provider-specific schemas, field names, SDK types, transport details, and failure semantics should remain at the integration boundary unless the accepted architecture explicitly requires otherwise. Translate external representations into application/domain concepts at a narrow boundary so provider changes do not ripple through unrelated code.
|
|
15
|
-
|
|
16
|
-
## 4. Make invalid states harder to represent
|
|
17
|
-
When the domain distinguishes materially different valid states, prefer types, constructors, schemas, invariants, or validation boundaries that make impossible/invalid combinations difficult to create. Do not create type complexity unless it removes meaningful runtime uncertainty.
|
|
18
|
-
|
|
19
|
-
## 5. Separate decisions from actions
|
|
20
|
-
Keep important business decisions independently understandable and testable when practical. Separate policy/decision logic from database, network, filesystem, notification, or other side effects so rules can be verified without triggering the actions they control.
|
|
21
|
-
|
|
22
|
-
## 6. Make failures useful
|
|
23
|
-
Errors should provide useful human meaning plus stable machine-readable identity when the surrounding contract supports it. Preserve diagnostic context needed to investigate failures, but never log or expose passwords, authentication/session tokens, API keys, credentials, or sensitive payloads that are not explicitly safe to record.
|
|
24
|
-
|
|
25
|
-
## 7. Keep changes focused
|
|
26
|
-
A ticket should produce one coherent, reviewable change. A maintainability issue discovered during implementation does not automatically enter scope. Make a supporting change only when it is necessary to satisfy the admitted ticket safely; otherwise leave it unchanged and surface it as a future planning/refactoring candidate when materially valuable.
|
|
27
|
-
|
|
28
|
-
## Applicability
|
|
29
|
-
Not every principle produces a required code change on every ticket. Apply only the principles relevant to the changed surface and accepted architecture. `NOT_APPLICABLE` is a valid assessment when a principle has no meaningful bearing on the change.
|
|
30
|
-
|
|
31
|
-
## Review threshold
|
|
32
|
-
A preference is not a defect. A changeability finding is blocking only when concrete evidence shows one of the following:
|
|
33
|
-
- the current implementation violates an accepted engineering/architecture constraint;
|
|
34
|
-
- the design materially increases coupling, ambiguity, invalid-state risk, side-effect entanglement, failure opacity, or review/recovery risk in the changed surface;
|
|
35
|
-
- the change includes unrelated scope that weakens reviewability or rollback safety;
|
|
36
|
-
- the violation prevents adequate testing or makes the ticket contract materially harder to verify.
|
|
37
|
-
|
|
38
|
-
Review findings must cite the principle, concrete location/evidence, expected property, actual implementation, and required repair or replan action.
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
# Durable memory rules
|
|
2
|
-
|
|
3
|
-
1. Conversation is never the only location of an accepted decision.
|
|
4
|
-
2. Record accepted product/engineering decisions before another question round.
|
|
5
|
-
3. Every accepted artifact carries machine-readable identity/revision metadata.
|
|
6
|
-
4. Keep task-specific mistakes in ticket/review history.
|
|
7
|
-
5. Promote only reusable project invariants into `.yaaw-core/project/rules/`.
|
|
8
|
-
6. Preserve superseded/stale artifacts; invalidate their authority instead of deleting history.
|
|
9
|
-
7. A fresh context unable to continue from artifacts indicates incomplete documentation.
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
# Question format
|
|
2
|
-
|
|
3
|
-
Before formatting a PRD or Planning question round, the active role applies `.yaaw-core/system/rules/assumption-challenge.md` to determine which questions belong on the current frontier. This file owns presentation and sequencing only; contradiction detection, stress testing, facts-before-questions, terminology analysis, and role authority remain canonical in the assumption-challenge and authority contracts.
|
|
4
|
-
|
|
5
|
-
Question rounds contain at most 10 meaningful questions and never filler. The maximum is not a target; zero questions is valid when the active role can safely proceed.
|
|
6
|
-
|
|
7
|
-
Preferred structure:
|
|
8
|
-
|
|
9
|
-
```text
|
|
10
|
-
1. Question?
|
|
11
|
-
A. Option
|
|
12
|
-
B. Option
|
|
13
|
-
C. Option
|
|
14
|
-
Recommendation: B
|
|
15
|
-
Reason: ...
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
Use options and recommendations where useful. Free-form answers are first-class and must never be forced into the offered choices. New unknowns discovered from an answer belong in the next round unless they block recording the current answer safely.
|
|
19
|
-
|
|
20
|
-
Before presenting another round, persist the accepted answers and update unresolved questions/frontier.
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
# Recovery evidence rules
|
|
2
|
-
|
|
3
|
-
State files are claims. Observed repository evidence is stronger for implementation reality.
|
|
4
|
-
|
|
5
|
-
Safe reconciliation requires enough evidence to identify the last trustworthy boundary and exact repository identity. Use evidence records, current artifact revisions, git history/diff, and review records together.
|
|
6
|
-
|
|
7
|
-
When the boundary cannot be established, preserve evidence, avoid destructive re-execution, and return `BLOCKED` with exact missing proof.
|
|
8
|
-
|
|
9
|
-
Never execute a runtime handoff whose repository or source-revision basis is stale.
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
# Repository capability and identity
|
|
2
|
-
|
|
3
|
-
Repository capability and repository identity are related but distinct.
|
|
4
|
-
|
|
5
|
-
## Capability
|
|
6
|
-
Resolve the YAAW workspace root using `.yaaw-core/system/core/execution-context.md`, then inspect Git only through the canonical utility.
|
|
7
|
-
|
|
8
|
-
No semantic workflow may independently calculate `worktree_digest`. All repository identity used in handoff, verification, recovery, or review must originate from:
|
|
9
|
-
|
|
10
|
-
```text
|
|
11
|
-
node .yaaw-core/system/tools/repository-identity.mjs --workspace <WORKSPACE_ROOT>
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
The tool emits machine-readable JSON on stdout, diagnostics on stderr, and exits non-zero when exact identity cannot be produced. The algorithm identifier is `yaaw-worktree-v2`. Roles and workflows **must not reimplement** it.
|
|
15
|
-
|
|
16
|
-
## Canonical digest inputs
|
|
17
|
-
All commands execute with `git -C <WORKSPACE_ROOT>` and remain workspace-scoped:
|
|
18
|
-
|
|
19
|
-
1. `git status --porcelain=v1 -z --untracked-files=all -- . <control-output exclusions>`
|
|
20
|
-
2. `git diff --binary --no-ext-diff --no-textconv HEAD -- . <control-output exclusions>`
|
|
21
|
-
3. `git diff --cached --binary --no-ext-diff --no-textconv HEAD -- . <control-output exclusions>`
|
|
22
|
-
4. `git ls-files --others --exclude-standard -z -- . <control-output exclusions>`
|
|
23
|
-
|
|
24
|
-
Hash raw stdout bytes. Never hash stderr, warnings, timestamps, absolute paths, ambient CWD, PIDs, or hostnames.
|
|
25
|
-
|
|
26
|
-
Untracked paths are slash-normalized and sorted. Regular files are hashed from exact bytes. Symlinks are hashed from their exact link-target representation. Unsupported or unreadable objects produce `IDENTITY_FAILED`; they are never silently omitted.
|
|
27
|
-
|
|
28
|
-
The final digest is SHA-256 over stable canonical UTF-8 JSON containing algorithm, workspace-relative scope, HEAD, component hashes, the explicit exclusions, and the sorted untracked manifest.
|
|
29
|
-
|
|
30
|
-
## Lifecycle-output exclusions
|
|
31
|
-
`yaaw-worktree-v2` excludes only YAAW files whose normal lifecycle write would otherwise invalidate the repository basis that the file itself records:
|
|
32
|
-
|
|
33
|
-
- `.yaaw-core/runtime/**` — replaceable observation/handoff/intent/failure caches;
|
|
34
|
-
- `.yaaw-core/project/state.json` — Orchestrator lifecycle ledger;
|
|
35
|
-
- `.yaaw-core/project/evidence/**` — immutable verification attestations;
|
|
36
|
-
- `.yaaw-core/project/reviews/**` — immutable acceptance attestations.
|
|
37
|
-
|
|
38
|
-
This prevents circular freshness: writing an observation, handoff, state transition, evidence record, or review cannot by itself make the implementation repository identity stale. These artifacts remain governed by their own schemas, revisions, immutability rules, transition sequence, and handoff references.
|
|
39
|
-
|
|
40
|
-
The exclusion deliberately does **not** cover product, engineering, research, specs, tickets, project rules, `.yaaw-core/install/**`, package-managed `.yaaw-core/system/**`, application files, `.codex/`, `.agents/`, `.claude/`, `.gemini/`, `.cline/`, or other provider/project paths. Changes to those continue to change repository identity.
|
|
41
|
-
|
|
42
|
-
When the Git top-level is an ancestor, unrelated sibling changes remain outside identity because all commands are scoped to the active workspace.
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
# Research admission
|
|
2
|
-
|
|
3
|
-
## Purpose
|
|
4
|
-
Keep external research and host-provided expertise evidence-driven rather than letting available tools silently choose architecture.
|
|
5
|
-
|
|
6
|
-
## Admission basis
|
|
7
|
-
Vendor-, framework-, package-, or platform-specific research is allowed only when at least one basis is explicit in the current durable frontier:
|
|
8
|
-
1. observed repository technology;
|
|
9
|
-
2. accepted product constraint;
|
|
10
|
-
3. accepted `ENG-*` decision;
|
|
11
|
-
4. an explicit current-frontier candidate under evaluation.
|
|
12
|
-
|
|
13
|
-
Availability of a Codex/host skill is not an admission basis.
|
|
14
|
-
|
|
15
|
-
## Candidate-neutral rule
|
|
16
|
-
When architecture itself is unresolved, establish decision criteria before vendor-specific research. Compare only candidates that satisfy current product/repository constraints. Do not load a Next.js, Vercel, Supabase, database, framework, or provider skill merely because it exists and then treat that availability as architectural evidence.
|
|
17
|
-
|
|
18
|
-
## Source quality
|
|
19
|
-
Prefer primary sources: official documentation, specifications, upstream source, first-party APIs, authoritative release notes, and package-registry metadata. Record version/date for version-sensitive claims. Secondary sources may help discover primary evidence but do not replace it for material decisions.
|
|
20
|
-
|
|
21
|
-
## Durable research
|
|
22
|
-
A material external fact that blocks the current frontier belongs in `.yaaw-core/project/research/RSH-NNN.md`. One artifact answers one bounded question. Research may resolve facts, uncertainty, or conflicts; it does not itself create an `ENG-*` decision.
|
|
23
|
-
|
|
24
|
-
Planner promotes verified research into engineering truth only through normal decision recording with provenance.
|
|
25
|
-
|
|
26
|
-
## Host expertise
|
|
27
|
-
YAAW expertise in `.yaaw-core/system/registries/expertise.json` is canonical shared guidance. Provider/host skills are optional advisory expertise and may be loaded only after a research-admission basis exists. Host expertise never grants workflow authority or expands artifact writes.
|
|
28
|
-
|
|
29
|
-
## Stop rule
|
|
30
|
-
Do not research future fog. If a fact is not needed to make the next bounded frontier implementable, defer it.
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
# Review independence
|
|
2
|
-
|
|
3
|
-
Reviewer evaluates actual repository work against the current ticket/spec/product/engineering contract and verification evidence.
|
|
4
|
-
|
|
5
|
-
- Do not accept an Implementer's summary as proof.
|
|
6
|
-
- Tie every review to repository identity plus ticket/spec revisions.
|
|
7
|
-
- Only Reviewer may transition `REVIEW_REQUIRED -> PASS`.
|
|
8
|
-
- A later source revision or repository drift can make prior PASS evidence stale without deleting the historical review.
|
|
9
|
-
- Reviewer may classify `REPLAN`, but Planner owns the resulting contract change.
|
|
10
|
-
- Under orchestrated operation, Reviewer must execute in a different fresh authority context from the Implementer whose work is being accepted. Never role-switch an Implementer worker into Reviewer.
|
|
11
|
-
- Independence is semantic, not a host depth/concurrency setting; it remains required even when a host falls back to inline execution.
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
# Ticket sizing
|
|
2
|
-
|
|
3
|
-
A ticket is correctly sized when one fresh Implementer can complete one coherent engineering change and verify a concrete outcome without inventing material product or architecture decisions.
|
|
4
|
-
|
|
5
|
-
Too large: multiple unrelated subsystems, major architecture rediscovery, vague behavior, missing acceptance, or many unverified intermediate states.
|
|
6
|
-
|
|
7
|
-
Too small: bookkeeping with no coherent independently verifiable outcome.
|
|
8
|
-
|
|
9
|
-
A ticket cannot be `READY` unless its source spec/frontier is current and dependency states satisfy admission.
|