yaaw-se 0.3.7 → 0.3.8
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/README.md +6 -2
- package/dist/installer/migrations/index.d.ts +2 -2
- package/dist/installer/migrations/index.js +2 -2
- package/dist/installer/migrations/project/index.js +2 -2
- package/dist/installer/migrations/project/index.js.map +1 -1
- package/dist/installer/migrations/project/v1-to-v2.d.ts +2 -0
- package/dist/installer/migrations/project/v1-to-v2.js +64 -0
- package/dist/installer/migrations/project/v1-to-v2.js.map +1 -0
- package/dist/installer/project-state.js +1 -0
- package/dist/installer/project-state.js.map +1 -1
- package/dist/installer/transaction.js +5 -0
- package/dist/installer/transaction.js.map +1 -1
- package/dist/installer/types.d.ts +5 -0
- package/dist/payload/bootstrap/claude-code.md +1 -1
- package/dist/payload/bootstrap/cline.md +1 -1
- package/dist/payload/bootstrap/codex.md +1 -1
- package/dist/payload/bootstrap/gemini-cli.md +1 -1
- package/dist/payload/integrations/codex/yaaw-runtime.md +1 -1
- package/dist/payload/payload-files.json +146 -111
- package/dist/payload/payload.json +1 -1
- package/dist/payload/skills/yaaw-create-spec/SKILL.md +6 -2
- package/dist/payload/skills/yaaw-create-ticket/SKILL.md +6 -2
- package/dist/payload/skills/yaaw-create-tickets/SKILL.md +6 -2
- package/dist/payload/skills/yaaw-implement/SKILL.md +6 -2
- package/dist/payload/skills/yaaw-orchestrator/SKILL.md +6 -2
- package/dist/payload/skills/yaaw-planner/SKILL.md +6 -2
- package/dist/payload/skills/yaaw-planning-review/SKILL.md +6 -2
- package/dist/payload/skills/yaaw-prd/SKILL.md +6 -2
- package/dist/payload/skills/yaaw-refine-prd/SKILL.md +6 -2
- package/dist/payload/skills/yaaw-repair/SKILL.md +6 -2
- package/dist/payload/skills/yaaw-review/SKILL.md +6 -2
- package/dist/payload/skills/yaaw-revise-prd/SKILL.md +6 -2
- package/dist/payload/yaaw-core/system/core/dispatch-execution.md +16 -53
- package/dist/payload/yaaw-core/system/core/invalidation.md +7 -38
- package/dist/payload/yaaw-core/system/core/io-contract.md +12 -45
- package/dist/payload/yaaw-core/system/core/lifecycle.md +11 -18
- package/dist/payload/yaaw-core/system/core/recovery.md +12 -26
- package/dist/payload/yaaw-core/system/core/routing.md +16 -31
- package/dist/payload/yaaw-core/system/core/state-model.md +7 -27
- package/dist/payload/yaaw-core/system/registries/handoff-policy.json +41 -59
- package/dist/payload/yaaw-core/system/registries/reconciliation-policy.json +17 -0
- package/dist/payload/yaaw-core/system/registries/role-io.json +15 -144
- package/dist/payload/yaaw-core/system/registries/skills.json +108 -12
- package/dist/payload/yaaw-core/system/roles/implementer.md +10 -13
- package/dist/payload/yaaw-core/system/roles/orchestrator.md +12 -17
- package/dist/payload/yaaw-core/system/roles/planner.md +9 -18
- package/dist/payload/yaaw-core/system/roles/reviewer.md +9 -14
- package/dist/payload/yaaw-core/system/schemas/engineering-v1.schema.json +15 -0
- package/dist/payload/yaaw-core/system/schemas/engineering-v2.schema.json +59 -0
- package/dist/payload/yaaw-core/system/schemas/engineering.schema.json +9 -12
- package/dist/payload/yaaw-core/system/schemas/evidence-v3.schema.json +111 -0
- package/dist/payload/yaaw-core/system/schemas/evidence.schema.json +3 -0
- package/dist/payload/yaaw-core/system/schemas/handoff.schema.json +3 -60
- package/dist/payload/yaaw-core/system/schemas/intent.schema.json +63 -8
- package/dist/payload/yaaw-core/system/schemas/observed-state.schema.json +55 -61
- package/dist/payload/yaaw-core/system/schemas/project-state-v1.schema.json +74 -0
- package/dist/payload/yaaw-core/system/schemas/project-state-v2.schema.json +251 -0
- package/dist/payload/yaaw-core/system/schemas/project-state.schema.json +9 -71
- package/dist/payload/yaaw-core/system/templates/engineering-research.md +2 -2
- package/dist/payload/yaaw-core/system/templates/engineering.md +2 -1
- package/dist/payload/yaaw-core/system/templates/evidence.json +2 -1
- package/dist/payload/yaaw-core/system/templates/handoff.json +7 -8
- package/dist/payload/yaaw-core/system/templates/intent.json +4 -3
- package/dist/payload/yaaw-core/system/templates/observed-state.json +6 -13
- package/dist/payload/yaaw-core/system/templates/project-state.json +2 -2
- package/dist/payload/yaaw-core/system/templates/review.md +4 -4
- package/dist/payload/yaaw-core/system/templates/spec.md +2 -2
- package/dist/payload/yaaw-core/system/templates/ticket.md +3 -3
- package/dist/payload/yaaw-core/system/tools/orchestration-engine.mjs +187 -0
- package/dist/payload/yaaw-core/system/tools/orchestration-runtime.mjs +46 -688
- package/dist/payload/yaaw-core/system/workflows/implementation/implement-ticket.md +9 -17
- package/dist/payload/yaaw-core/system/workflows/implementation/repair-ticket.md +7 -12
- package/dist/payload/yaaw-core/system/workflows/implementation/verify-ticket.md +9 -10
- package/dist/payload/yaaw-core/system/workflows/orchestration/reconcile-state.md +10 -13
- package/dist/payload/yaaw-core/system/workflows/orchestration/recover-interruption.md +9 -12
- package/dist/payload/yaaw-core/system/workflows/orchestration/route.md +14 -21
- package/dist/payload/yaaw-core/system/workflows/planning/create-spec.md +3 -0
- package/dist/payload/yaaw-core/system/workflows/planning/create-tickets.md +3 -0
- package/dist/payload/yaaw-core/system/workflows/planning/decision-frontier.md +3 -0
- package/dist/payload/yaaw-core/system/workflows/planning/replan.md +2 -0
- package/package.json +4 -3
|
@@ -1,26 +1,18 @@
|
|
|
1
1
|
# Implement ticket
|
|
2
2
|
|
|
3
3
|
## Purpose
|
|
4
|
-
Implement one admitted bounded ticket
|
|
4
|
+
Implement one admitted bounded ticket while making interruption recoverable from durable facts.
|
|
5
5
|
|
|
6
6
|
## Preconditions
|
|
7
|
-
|
|
7
|
+
Reconciled state says the ticket is `READY`; source revisions are current; dependencies pass; repository identity is `READY`.
|
|
8
8
|
|
|
9
9
|
## Procedure
|
|
10
|
-
1.
|
|
11
|
-
2.
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
6. If a material missing decision appears, transition to `REPLAN_REQUIRED` or `BLOCKED`; do not invent it.
|
|
17
|
-
7. Execute `implementation.verify-ticket`, including targeted verification for materially affected changeability properties.
|
|
18
|
-
8. Persist evidence tied to ticket/spec revisions and repository identity.
|
|
19
|
-
9. Transition `IN_PROGRESS -> REVIEW_REQUIRED` only when required evidence exists.
|
|
10
|
+
1. Read the exact handoff, state, ticket, source contracts, `.yaaw-core/system/rules/changeability.md`, applicable expertise, and minimal code.
|
|
11
|
+
2. Before editing any application file, write immutable v3 `implementation_start` evidence with result `STARTED`, current ticket/spec revisions, workflow ID, and the exact pre-edit repository identity.
|
|
12
|
+
3. Only after that durable start fact exists, implement strictly inside allowed scope.
|
|
13
|
+
4. If a material contract gap appears, stop with `REPLAN_REQUIRED` or `BLOCKED`; do not invent it.
|
|
14
|
+
5. Execute `implementation.verify-ticket`.
|
|
15
|
+
6. Persist verification evidence. Do not mutate lifecycle state directly.
|
|
20
16
|
|
|
21
17
|
## Output
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
## Evidence identity
|
|
25
|
-
|
|
26
|
-
Use the canonical repository identity utility for implementation evidence. Do not implement a private worktree digest. Changeability requirements remain in force.
|
|
18
|
+
Bounded implementation plus durable start/verification evidence or a typed stop. Orchestrator adopts `READY -> IN_PROGRESS` from start evidence and `IN_PROGRESS -> REVIEW_REQUIRED` only from current PASS verification.
|
|
@@ -4,19 +4,14 @@
|
|
|
4
4
|
Correct implementation defects while keeping the accepted ticket/spec contract unchanged.
|
|
5
5
|
|
|
6
6
|
## Preconditions
|
|
7
|
-
|
|
7
|
+
Reconciled state is `REPAIR_REQUIRED` and the latest review result is `REPAIR` against the current contract.
|
|
8
8
|
|
|
9
9
|
## Procedure
|
|
10
|
-
1. Load the
|
|
11
|
-
2. Repair only
|
|
12
|
-
3.
|
|
13
|
-
4.
|
|
14
|
-
5.
|
|
15
|
-
6. Transition `REPAIR_REQUIRED -> REVIEW_REQUIRED` with provenance.
|
|
10
|
+
1. Load state, the unchanged ticket contract, `.yaaw-core/system/rules/changeability.md`, latest review findings, prior evidence, and relevant code.
|
|
11
|
+
2. Repair only the bounded findings; do not broaden scope.
|
|
12
|
+
3. If repair requires product/architecture contract changes, return `REPLAN_REQUIRED`.
|
|
13
|
+
4. Rerun `implementation.verify-ticket` and write a new v3 verification record distinct from evidence referenced by the REPAIR review.
|
|
14
|
+
5. Never edit state. Orchestrator moves `REPAIR_REQUIRED -> REVIEW_REQUIRED` only after fresh PASS verification.
|
|
16
15
|
|
|
17
16
|
## Output
|
|
18
|
-
Repaired reviewable implementation or replan/blocker result.
|
|
19
|
-
|
|
20
|
-
## Repair identity
|
|
21
|
-
|
|
22
|
-
After bounded repair and verification, bind evidence to the canonical repository identity and return `REVIEW_REQUIRED`. Changeability requirements remain in force.
|
|
17
|
+
Repaired reviewable implementation with fresh verification evidence, or a typed replan/blocker result.
|
|
@@ -4,17 +4,16 @@
|
|
|
4
4
|
Produce reproducible implementation evidence without self-accepting the ticket.
|
|
5
5
|
|
|
6
6
|
## Inputs
|
|
7
|
-
|
|
7
|
+
Exact handoff, reconciled state, ticket requirements/tests, changed surface, project rules/tooling, and current repository identity.
|
|
8
8
|
|
|
9
9
|
## Procedure
|
|
10
|
-
1. Run every test/check
|
|
11
|
-
2.
|
|
12
|
-
3.
|
|
13
|
-
4.
|
|
14
|
-
5.
|
|
10
|
+
1. Run every ticket-required test/check and justified targeted regressions.
|
|
11
|
+
2. Verify materially relevant changeability properties as concrete behavior.
|
|
12
|
+
3. After verification commands finish, capture the canonical repository identity.
|
|
13
|
+
4. Write a new immutable `.yaaw-core/project/evidence/EVIDENCE-TASK-NNN-VK.json` using `yaaw.evidence/v3`.
|
|
14
|
+
5. Set `kind: implementation_verification` and exactly one result: `PASS`, `FAIL`, or `BLOCKED`.
|
|
15
|
+
6. Preserve failed records; fixes produce a later evidence record.
|
|
16
|
+
7. If verification proves implementation materially incomplete, return `IMPLEMENTATION_INCOMPLETE` to Orchestrator rather than silently reimplementing in this verification workflow.
|
|
15
17
|
|
|
16
18
|
## Output
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
## Verification identity
|
|
20
|
-
After verification commands finish, invoke `.yaaw-core/system/tools/repository-identity.mjs` and record that exact output in `yaaw.evidence/v2`. Do not reserialize it through a second digest implementation. Replaceable `.yaaw-core/runtime/**` coordination files are excluded by canonical `yaaw-worktree-v2`; all semantic/project/application changes remain in the basis. Changeability requirements remain in force.
|
|
19
|
+
One explicit verification result. Only a current PASS record can authorize review admission; evidence-file existence alone never does.
|
|
@@ -1,22 +1,19 @@
|
|
|
1
1
|
# Reconcile state
|
|
2
2
|
|
|
3
3
|
## Purpose
|
|
4
|
-
|
|
4
|
+
Apply exactly one highest-priority evidence-backed state adoption or legal lifecycle transition.
|
|
5
5
|
|
|
6
6
|
## Inputs
|
|
7
|
-
Current observed-state snapshot
|
|
7
|
+
Current observed-state snapshot and its `reconciliation` object from the production orchestration engine.
|
|
8
8
|
|
|
9
9
|
## Procedure
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
1. Require framework integrity `HEALTHY`.
|
|
11
|
+
2. Run `node .yaaw-core/system/tools/orchestration-runtime.mjs --workspace <WORKSPACE_ROOT> --reconcile-one`.
|
|
12
|
+
3. Apply only the one reconciliation returned by the engine; do not batch multiple discovered facts.
|
|
13
|
+
4. Increment `transition_sequence` exactly once and persist provenance.
|
|
14
|
+
5. Return immediately to `orchestration.route` so reality is observed again.
|
|
14
15
|
|
|
15
|
-
|
|
16
|
-
Reconciled state or `BLOCKED` when the last trustworthy boundary cannot be proven.
|
|
17
|
-
|
|
18
|
-
## Framework boundary
|
|
16
|
+
Examples include ledger sync, accepted-spec adoption, ticket registration, implementation-start adoption, PASS-verification adoption, review-result adoption, acceptance invalidation, and project completion sync.
|
|
19
17
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
Reviewer-owned acceptance results are applied to `state.json` by Orchestrator only after the immutable review artifact is fresh and valid. Orchestrator records exactly the target implied by the review result and never invents an acceptance result.
|
|
18
|
+
## Output
|
|
19
|
+
One reconciled mutation or a typed blocker. No semantic product/engineering/implementation/acceptance judgment is invented here.
|
|
@@ -4,18 +4,15 @@
|
|
|
4
4
|
Resume safely after context/session failure without duplicating already-completed work.
|
|
5
5
|
|
|
6
6
|
## Inputs
|
|
7
|
-
|
|
7
|
+
Reconciled state, durable artifacts, implementation-start/verification evidence, reviews, and repository identity.
|
|
8
8
|
|
|
9
9
|
## Procedure
|
|
10
|
-
1. Discard stale runtime handoffs
|
|
11
|
-
2. Identify the last trustworthy
|
|
12
|
-
3.
|
|
13
|
-
4.
|
|
14
|
-
5.
|
|
15
|
-
6.
|
|
10
|
+
1. Discard stale runtime caches/handoffs.
|
|
11
|
+
2. Identify the last trustworthy durable boundary.
|
|
12
|
+
3. For `IN_PROGRESS`: current PASS verification is reconciled to review; valid start evidence without PASS verification routes to `implementation.verify-ticket`; missing start evidence requires explicit recovery/blocking proof.
|
|
13
|
+
4. Never rerun full implementation merely because a worker response disappeared.
|
|
14
|
+
5. A source-current review artifact is adopted before another Reviewer dispatch.
|
|
15
|
+
6. Use only legal transitions with provenance; if the boundary cannot be proven, return `BLOCKED`.
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
## Acceptance recovery
|
|
20
|
-
|
|
21
|
-
A source-current stale `PASS` is recovered through `REVIEW_REQUIRED`. Do not dispatch Planner unless contract invalidation is independently proven.
|
|
17
|
+
## Output
|
|
18
|
+
A safe next boundary or exact blocker, then control returns to `orchestration.route`.
|
|
@@ -1,34 +1,27 @@
|
|
|
1
1
|
# Orchestration main loop
|
|
2
2
|
|
|
3
3
|
## Purpose
|
|
4
|
-
Continuously restore project reality and execute one safe canonical workflow at a time until a
|
|
4
|
+
Continuously restore project reality and execute one safe canonical workflow at a time until the active intent is satisfied or a real stop occurs.
|
|
5
5
|
|
|
6
6
|
## Deterministic preparation
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
For normal continuation:
|
|
9
8
|
```text
|
|
10
9
|
node .yaaw-core/system/tools/orchestration-runtime.mjs --workspace <WORKSPACE_ROOT>
|
|
11
10
|
```
|
|
12
11
|
|
|
13
|
-
|
|
12
|
+
For a public shortcut:
|
|
13
|
+
```text
|
|
14
|
+
node .yaaw-core/system/tools/orchestration-runtime.mjs --workspace <WORKSPACE_ROOT> --invoke-skill <skill-id>
|
|
15
|
+
```
|
|
14
16
|
|
|
15
17
|
## Procedure
|
|
16
18
|
Repeat:
|
|
17
19
|
1. run deterministic preparation once;
|
|
18
|
-
2. on `FRAMEWORK_STOP`,
|
|
19
|
-
3. on `RECONCILE_REQUIRED`,
|
|
20
|
-
4. on `ROOT_ACTION`, execute the returned Orchestrator workflow
|
|
21
|
-
5. on `
|
|
22
|
-
6.
|
|
23
|
-
7.
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
`orchestration.inspect-state` and `orchestration.determine-next-action` remain canonical compatibility/debug workflows, but the normal loop does not execute them as separate model-driven reconstruction passes.
|
|
27
|
-
|
|
28
|
-
There is no direct `worker A result -> worker B` authority chain. Reality reconstruction always sits between authority-role dispatches.
|
|
29
|
-
|
|
30
|
-
## Loop safety
|
|
31
|
-
If the same repository basis, lifecycle state, route, and expected output repeat without durable mutation/evidence change, stop as `BLOCKED` with `no_progress` rather than spinning.
|
|
32
|
-
|
|
33
|
-
## Stop conditions
|
|
34
|
-
Framework integrity unavailable/unhealthy; framework contract inconsistency; Human product/engineering answer required; evidence/permission unavailable; target workflow requires repository `IDENTITY` but status is not `READY`; active host/runtime policy blocks required isolation/profile fidelity; host requires approval for consequential action; or accepted scope is terminal `COMPLETE`.
|
|
20
|
+
2. on `FRAMEWORK_STOP`, stop without lifecycle mutation;
|
|
21
|
+
3. on `RECONCILE_REQUIRED`, apply exactly one reconciliation with `--reconcile-one`, then observe again;
|
|
22
|
+
4. on `ROOT_ACTION`, execute only the returned Orchestrator recovery workflow, then observe again;
|
|
23
|
+
5. on `DISPATCH_READY`, execute exactly the persisted handoff once;
|
|
24
|
+
6. after any worker outcome or disappearance, discard worker text as authority and observe durable reality again;
|
|
25
|
+
7. on `INTENT_COMPLETE`, `TERMINAL`, `BLOCKED`, or human input, stop.
|
|
26
|
+
|
|
27
|
+
No worker-to-worker authority chain exists. Every semantic successor is selected after reality reconstruction.
|
|
@@ -16,3 +16,6 @@ Current frontier readiness is `PASS`; its product/engineering revisions remain c
|
|
|
16
16
|
|
|
17
17
|
## Output
|
|
18
18
|
One current accepted spec or an explicit planning gap.
|
|
19
|
+
|
|
20
|
+
## Adoption
|
|
21
|
+
Planner writes the accepted spec only. Orchestrator detects the unique current accepted spec and adopts it into state on the next observation. Planner never writes `state.json`.
|
|
@@ -18,3 +18,6 @@ Source spec is `ACCEPTED`, product/engineering revisions remain current, and rep
|
|
|
18
18
|
|
|
19
19
|
## Output
|
|
20
20
|
Dependency-aware tickets requiring no planning-chat memory and preserving focused, reviewable change boundaries.
|
|
21
|
+
|
|
22
|
+
## Registration
|
|
23
|
+
Planner writes ticket artifacts only. Orchestrator registers current tickets into `state.json` one reconciliation at a time, preventing duplicate ticket creation when Planner output text is lost.
|
|
@@ -28,3 +28,6 @@ Assign/update a stable frontier ID. Only current-frontier decisions/research/pro
|
|
|
28
28
|
|
|
29
29
|
## Output
|
|
30
30
|
Durable bounded frontier plus zero or more admitted research artifacts. The next route is research, question-round, PRD, readiness, or READY as the persisted partition requires.
|
|
31
|
+
|
|
32
|
+
## Scope completion signal
|
|
33
|
+
Maintain `engineering.scope_status` on every meaningful frontier update. Use `UNKNOWN` when completion is not proven, `OPEN` when accepted product scope remains after this frontier, and `COMPLETE` only when durable product/planning evidence proves no accepted scope remains. Future ideas/non-goals do not keep accepted scope open.
|
|
@@ -20,3 +20,5 @@ Current engineering contract plus updated downstream admission state.
|
|
|
20
20
|
## Admission guard
|
|
21
21
|
|
|
22
22
|
Repository identity change alone is not sufficient reason to replan. Require stale source/contract revisions or Reviewer `REPLAN` evidence.
|
|
23
|
+
|
|
24
|
+
Planner may revise engineering/spec/ticket artifacts but never writes lifecycle state directly. Orchestrator observes the durable revised contract and applies legal admission/invalidation transitions.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "yaaw-se",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.8",
|
|
4
4
|
"description": "Artifact-first autonomous software engineering workflow installer.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -20,14 +20,15 @@
|
|
|
20
20
|
"build:payload": "node scripts/build_npm_payload.mjs",
|
|
21
21
|
"verify:payload": "node scripts/verify_npm_payload.mjs",
|
|
22
22
|
"build": "npm run clean && npm run build:ts && npm run build:payload && npm run verify:payload",
|
|
23
|
-
"validate:core": "python scripts/validate_core.py && python scripts/validate_behavior.py &&
|
|
23
|
+
"validate:core": "npm run validate:schemas && python scripts/validate_core.py && python scripts/validate_behavior.py && node scripts/run_lifecycle_cases.mjs",
|
|
24
24
|
"validate:distribution": "python scripts/validate_distribution.py",
|
|
25
25
|
"test:python": "python -m unittest discover -s tests -v",
|
|
26
26
|
"test:cli": "npm run build:payload && vitest run tests/cli",
|
|
27
27
|
"test": "npm run validate:core && npm run validate:distribution && npm run test:python && npm run test:cli",
|
|
28
28
|
"prepack": "npm run test && npm run build",
|
|
29
29
|
"smoke:tarball": "npm run build && node scripts/smoke_npm_tarball.mjs",
|
|
30
|
-
"smoke:update": "npm run build && node scripts/smoke_npm_update.mjs"
|
|
30
|
+
"smoke:update": "npm run build && node scripts/smoke_npm_update.mjs",
|
|
31
|
+
"validate:schemas": "node scripts/validate_schemas.mjs"
|
|
31
32
|
},
|
|
32
33
|
"dependencies": {
|
|
33
34
|
"@clack/prompts": "1.8.1",
|