yaaw-se 0.1.0-dev.35745937645.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.
- package/README.md +155 -0
- package/dist/cli/commands/doctor.d.ts +6 -0
- package/dist/cli/commands/doctor.js +21 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/install.d.ts +39 -0
- package/dist/cli/commands/install.js +209 -0
- package/dist/cli/commands/install.js.map +1 -0
- package/dist/cli/commands/status.d.ts +63 -0
- package/dist/cli/commands/status.js +23 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/main.d.ts +2 -0
- package/dist/cli/main.js +40 -0
- package/dist/cli/main.js.map +1 -0
- package/dist/installer/boundary.d.ts +4 -0
- package/dist/installer/boundary.js +75 -0
- package/dist/installer/boundary.js.map +1 -0
- package/dist/installer/context.d.ts +3 -0
- package/dist/installer/context.js +14 -0
- package/dist/installer/context.js.map +1 -0
- package/dist/installer/detect.d.ts +7 -0
- package/dist/installer/detect.js +40 -0
- package/dist/installer/detect.js.map +1 -0
- package/dist/installer/filesystem.d.ts +1 -0
- package/dist/installer/filesystem.js +23 -0
- package/dist/installer/filesystem.js.map +1 -0
- package/dist/installer/hashing.d.ts +1 -0
- package/dist/installer/hashing.js +5 -0
- package/dist/installer/hashing.js.map +1 -0
- package/dist/installer/managed-sections.d.ts +8 -0
- package/dist/installer/managed-sections.js +53 -0
- package/dist/installer/managed-sections.js.map +1 -0
- package/dist/installer/manifest.d.ts +5 -0
- package/dist/installer/manifest.js +40 -0
- package/dist/installer/manifest.js.map +1 -0
- package/dist/installer/migrations/index.d.ts +14 -0
- package/dist/installer/migrations/index.js +23 -0
- package/dist/installer/migrations/index.js.map +1 -0
- package/dist/installer/migrations/installation/index.d.ts +2 -0
- package/dist/installer/migrations/installation/index.js +3 -0
- package/dist/installer/migrations/installation/index.js.map +1 -0
- package/dist/installer/migrations/project/index.d.ts +2 -0
- package/dist/installer/migrations/project/index.js +3 -0
- package/dist/installer/migrations/project/index.js.map +1 -0
- package/dist/installer/plan.d.ts +10 -0
- package/dist/installer/plan.js +298 -0
- package/dist/installer/plan.js.map +1 -0
- package/dist/installer/project-state.d.ts +2 -0
- package/dist/installer/project-state.js +41 -0
- package/dist/installer/project-state.js.map +1 -0
- package/dist/installer/status.d.ts +61 -0
- package/dist/installer/status.js +146 -0
- package/dist/installer/status.js.map +1 -0
- package/dist/installer/transaction.d.ts +10 -0
- package/dist/installer/transaction.js +176 -0
- package/dist/installer/transaction.js.map +1 -0
- package/dist/installer/types.d.ts +98 -0
- package/dist/installer/types.js +2 -0
- package/dist/installer/types.js.map +1 -0
- package/dist/installer/verify.d.ts +2 -0
- package/dist/installer/verify.js +49 -0
- package/dist/installer/verify.js.map +1 -0
- package/dist/integrations/claude-code.d.ts +1 -0
- package/dist/integrations/claude-code.js +13 -0
- package/dist/integrations/claude-code.js.map +1 -0
- package/dist/integrations/cline.d.ts +1 -0
- package/dist/integrations/cline.js +13 -0
- package/dist/integrations/cline.js.map +1 -0
- package/dist/integrations/codex.d.ts +1 -0
- package/dist/integrations/codex.js +13 -0
- package/dist/integrations/codex.js.map +1 -0
- package/dist/integrations/gemini-cli.d.ts +1 -0
- package/dist/integrations/gemini-cli.js +13 -0
- package/dist/integrations/gemini-cli.js.map +1 -0
- package/dist/integrations/helpers.d.ts +14 -0
- package/dist/integrations/helpers.js +86 -0
- package/dist/integrations/helpers.js.map +1 -0
- package/dist/integrations/registry.d.ts +4 -0
- package/dist/integrations/registry.js +18 -0
- package/dist/integrations/registry.js.map +1 -0
- package/dist/integrations/types.d.ts +31 -0
- package/dist/integrations/types.js +2 -0
- package/dist/integrations/types.js.map +1 -0
- package/dist/payload/bootstrap/claude-code.md +10 -0
- package/dist/payload/bootstrap/cline.md +10 -0
- package/dist/payload/bootstrap/codex.md +10 -0
- package/dist/payload/bootstrap/gemini-cli.md +10 -0
- package/dist/payload/payload-files.json +505 -0
- package/dist/payload/payload.json +4 -0
- package/dist/payload/skills/yaaw-create-spec/SKILL.md +10 -0
- package/dist/payload/skills/yaaw-create-ticket/SKILL.md +10 -0
- package/dist/payload/skills/yaaw-create-tickets/SKILL.md +10 -0
- package/dist/payload/skills/yaaw-implement/SKILL.md +10 -0
- package/dist/payload/skills/yaaw-orchestrator/SKILL.md +10 -0
- package/dist/payload/skills/yaaw-planner/SKILL.md +10 -0
- package/dist/payload/skills/yaaw-planning-review/SKILL.md +10 -0
- package/dist/payload/skills/yaaw-prd/SKILL.md +10 -0
- package/dist/payload/skills/yaaw-refine-prd/SKILL.md +10 -0
- package/dist/payload/skills/yaaw-repair/SKILL.md +10 -0
- package/dist/payload/skills/yaaw-review/SKILL.md +10 -0
- package/dist/payload/skills/yaaw-revise-prd/SKILL.md +10 -0
- package/dist/payload/yaaw-core/core/artifact-model.md +35 -0
- package/dist/payload/yaaw-core/core/authority.md +15 -0
- package/dist/payload/yaaw-core/core/context-loading.md +23 -0
- package/dist/payload/yaaw-core/core/invalidation.md +20 -0
- package/dist/payload/yaaw-core/core/lifecycle.md +33 -0
- package/dist/payload/yaaw-core/core/recovery.md +20 -0
- package/dist/payload/yaaw-core/core/routing.md +30 -0
- package/dist/payload/yaaw-core/core/state-model.md +26 -0
- package/dist/payload/yaaw-core/core/transitions.md +34 -0
- package/dist/payload/yaaw-core/expertise/changeability/MODULE.md +58 -0
- package/dist/payload/yaaw-core/expertise/frontend-design/MODULE.md +16 -0
- package/dist/payload/yaaw-core/expertise/python/MODULE.md +16 -0
- package/dist/payload/yaaw-core/expertise/security/MODULE.md +16 -0
- package/dist/payload/yaaw-core/expertise/testing/MODULE.md +16 -0
- package/dist/payload/yaaw-core/registries/expertise.json +47 -0
- package/dist/payload/yaaw-core/registries/paths.json +15 -0
- package/dist/payload/yaaw-core/registries/routing-policy.json +16 -0
- package/dist/payload/yaaw-core/registries/skills.json +14 -0
- package/dist/payload/yaaw-core/registries/transitions.json +29 -0
- package/dist/payload/yaaw-core/registries/workflows.json +37 -0
- package/dist/payload/yaaw-core/roles/implementer.md +15 -0
- package/dist/payload/yaaw-core/roles/orchestrator.md +16 -0
- package/dist/payload/yaaw-core/roles/planner.md +19 -0
- package/dist/payload/yaaw-core/roles/prd.md +19 -0
- package/dist/payload/yaaw-core/roles/reviewer.md +20 -0
- package/dist/payload/yaaw-core/rules/artifact-writing.md +10 -0
- package/dist/payload/yaaw-core/rules/assumption-challenge.md +109 -0
- package/dist/payload/yaaw-core/rules/changeability.md +38 -0
- package/dist/payload/yaaw-core/rules/durable-memory.md +9 -0
- package/dist/payload/yaaw-core/rules/question-format.md +20 -0
- package/dist/payload/yaaw-core/rules/recovery-evidence.md +9 -0
- package/dist/payload/yaaw-core/rules/repository-identity.md +16 -0
- package/dist/payload/yaaw-core/rules/review-independence.md +9 -0
- package/dist/payload/yaaw-core/rules/ticket-sizing.md +9 -0
- package/dist/payload/yaaw-core/schemas/engineering.schema.json +15 -0
- package/dist/payload/yaaw-core/schemas/evidence.schema.json +36 -0
- package/dist/payload/yaaw-core/schemas/handoff.schema.json +28 -0
- package/dist/payload/yaaw-core/schemas/observed-state.schema.json +25 -0
- package/dist/payload/yaaw-core/schemas/product.schema.json +12 -0
- package/dist/payload/yaaw-core/schemas/project-state.schema.json +74 -0
- package/dist/payload/yaaw-core/schemas/review.schema.json +19 -0
- package/dist/payload/yaaw-core/schemas/spec.schema.json +17 -0
- package/dist/payload/yaaw-core/schemas/ticket.schema.json +20 -0
- package/dist/payload/yaaw-core/templates/engineering.md +33 -0
- package/dist/payload/yaaw-core/templates/evidence.json +12 -0
- package/dist/payload/yaaw-core/templates/handoff.json +12 -0
- package/dist/payload/yaaw-core/templates/observed-state.json +9 -0
- package/dist/payload/yaaw-core/templates/product.md +26 -0
- package/dist/payload/yaaw-core/templates/project-state.json +13 -0
- package/dist/payload/yaaw-core/templates/review.md +28 -0
- package/dist/payload/yaaw-core/templates/spec.md +29 -0
- package/dist/payload/yaaw-core/templates/ticket.md +28 -0
- package/dist/payload/yaaw-core/workflows/implementation/implement-ticket.md +21 -0
- package/dist/payload/yaaw-core/workflows/implementation/repair-ticket.md +18 -0
- package/dist/payload/yaaw-core/workflows/implementation/select-ticket.md +16 -0
- package/dist/payload/yaaw-core/workflows/implementation/verify-ticket.md +17 -0
- package/dist/payload/yaaw-core/workflows/orchestration/determine-next-action.md +16 -0
- package/dist/payload/yaaw-core/workflows/orchestration/dispatch.md +17 -0
- package/dist/payload/yaaw-core/workflows/orchestration/inspect-state.md +17 -0
- package/dist/payload/yaaw-core/workflows/orchestration/reconcile-state.md +16 -0
- package/dist/payload/yaaw-core/workflows/orchestration/recover-interruption.md +17 -0
- package/dist/payload/yaaw-core/workflows/orchestration/route.md +20 -0
- package/dist/payload/yaaw-core/workflows/planning/create-spec.md +18 -0
- package/dist/payload/yaaw-core/workflows/planning/create-tickets.md +19 -0
- package/dist/payload/yaaw-core/workflows/planning/decision-frontier.md +27 -0
- package/dist/payload/yaaw-core/workflows/planning/discover.md +17 -0
- package/dist/payload/yaaw-core/workflows/planning/question-round.md +22 -0
- package/dist/payload/yaaw-core/workflows/planning/readiness-review.md +32 -0
- package/dist/payload/yaaw-core/workflows/planning/record-decisions.md +20 -0
- package/dist/payload/yaaw-core/workflows/planning/replan.md +18 -0
- package/dist/payload/yaaw-core/workflows/planning/route.md +20 -0
- package/dist/payload/yaaw-core/workflows/planning/write-understanding.md +24 -0
- package/dist/payload/yaaw-core/workflows/prd/create.md +22 -0
- package/dist/payload/yaaw-core/workflows/prd/question-round.md +20 -0
- package/dist/payload/yaaw-core/workflows/prd/readiness.md +22 -0
- package/dist/payload/yaaw-core/workflows/prd/record-decisions.md +20 -0
- package/dist/payload/yaaw-core/workflows/prd/refine.md +15 -0
- package/dist/payload/yaaw-core/workflows/prd/revise.md +18 -0
- package/dist/payload/yaaw-core/workflows/prd/route.md +23 -0
- package/dist/payload/yaaw-core/workflows/review/classify-findings.md +17 -0
- package/dist/payload/yaaw-core/workflows/review/inspect-change.md +16 -0
- package/dist/payload/yaaw-core/workflows/review/record-review.md +18 -0
- package/dist/payload/yaaw-core/workflows/review/review-ticket.md +20 -0
- package/dist/renderers/agent-skill.d.ts +1 -0
- package/dist/renderers/agent-skill.js +14 -0
- package/dist/renderers/agent-skill.js.map +1 -0
- package/dist/renderers/bootstrap-block.d.ts +1 -0
- package/dist/renderers/bootstrap-block.js +10 -0
- package/dist/renderers/bootstrap-block.js.map +1 -0
- package/dist/tui/confirm-plan.d.ts +3 -0
- package/dist/tui/confirm-plan.js +23 -0
- package/dist/tui/confirm-plan.js.map +1 -0
- package/dist/tui/existing-install.d.ts +2 -0
- package/dist/tui/existing-install.js +17 -0
- package/dist/tui/existing-install.js.map +1 -0
- package/dist/tui/result.d.ts +2 -0
- package/dist/tui/result.js +8 -0
- package/dist/tui/result.js.map +1 -0
- package/dist/tui/select-directory.d.ts +1 -0
- package/dist/tui/select-directory.js +12 -0
- package/dist/tui/select-directory.js.map +1 -0
- package/dist/tui/select-skills.d.ts +1 -0
- package/dist/tui/select-skills.js +29 -0
- package/dist/tui/select-skills.js.map +1 -0
- package/dist/tui/select-tools.d.ts +2 -0
- package/dist/tui/select-tools.js +19 -0
- package/dist/tui/select-tools.js.map +1 -0
- package/package.json +49 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
schema: yaaw.product/v1
|
|
3
|
+
revision: 1
|
|
4
|
+
status: draft
|
|
5
|
+
---
|
|
6
|
+
# Product
|
|
7
|
+
|
|
8
|
+
## Goal
|
|
9
|
+
|
|
10
|
+
## Target users
|
|
11
|
+
|
|
12
|
+
## User problems
|
|
13
|
+
|
|
14
|
+
## Expected behavior
|
|
15
|
+
|
|
16
|
+
## Important flows
|
|
17
|
+
|
|
18
|
+
## Constraints
|
|
19
|
+
|
|
20
|
+
## Scope
|
|
21
|
+
|
|
22
|
+
## Non-goals
|
|
23
|
+
|
|
24
|
+
## Accepted product decisions
|
|
25
|
+
|
|
26
|
+
## Unresolved product questions
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "yaaw.project-state/v1",
|
|
3
|
+
"phase": "product",
|
|
4
|
+
"product": {"artifact": ".yaaw-core/project/product.md", "status": "missing", "revision": 0},
|
|
5
|
+
"planning": {"artifact": ".yaaw-core/project/engineering.md", "status": "missing", "revision": 0, "current_frontier": null, "readiness": "pending", "active_spec": null},
|
|
6
|
+
"active_ticket": null,
|
|
7
|
+
"tickets": {},
|
|
8
|
+
"transition_sequence": 0,
|
|
9
|
+
"last_transition": null,
|
|
10
|
+
"blocker": null,
|
|
11
|
+
"last_observed_commit": null,
|
|
12
|
+
"last_workflow": null
|
|
13
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
schema: yaaw.review/v1
|
|
3
|
+
ticket: TASK-XXX
|
|
4
|
+
round: 1
|
|
5
|
+
result: RESULT
|
|
6
|
+
ticket_revision: 1
|
|
7
|
+
spec_revision: 1
|
|
8
|
+
reviewed_head_commit: COMMIT
|
|
9
|
+
reviewed_dirty: true
|
|
10
|
+
reviewed_worktree_digest: DIGEST
|
|
11
|
+
evidence: []
|
|
12
|
+
---
|
|
13
|
+
# REVIEW-TASK-XXX-R1
|
|
14
|
+
|
|
15
|
+
## Result rationale
|
|
16
|
+
|
|
17
|
+
## Reviewed state
|
|
18
|
+
|
|
19
|
+
## Findings
|
|
20
|
+
|
|
21
|
+
## Changeability assessment
|
|
22
|
+
Record only materially relevant principles. Use `PASS`, `FAIL`, or `NOT_APPLICABLE`; do not use subjective scores. Blocking failures must cite concrete engineering impact rather than style preference.
|
|
23
|
+
|
|
24
|
+
## Verification
|
|
25
|
+
|
|
26
|
+
## Evidence
|
|
27
|
+
|
|
28
|
+
## Next action
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
schema: yaaw.spec/v1
|
|
3
|
+
id: SPEC-XXX
|
|
4
|
+
revision: 1
|
|
5
|
+
status: DRAFT
|
|
6
|
+
product_revision: 1
|
|
7
|
+
engineering_revision: 1
|
|
8
|
+
frontier_id: FRONTIER-001
|
|
9
|
+
decision_ids: []
|
|
10
|
+
---
|
|
11
|
+
# SPEC-XXX
|
|
12
|
+
|
|
13
|
+
## Goal
|
|
14
|
+
## Product source
|
|
15
|
+
## Repository context
|
|
16
|
+
## Engineering decisions
|
|
17
|
+
## Architecture / boundaries
|
|
18
|
+
## Expected behavior
|
|
19
|
+
## Data / state changes
|
|
20
|
+
## Interfaces
|
|
21
|
+
## Failure modes
|
|
22
|
+
## Security considerations
|
|
23
|
+
## UX / accessibility requirements
|
|
24
|
+
## Testing expectations
|
|
25
|
+
## Observability
|
|
26
|
+
## Migration / compatibility
|
|
27
|
+
## Non-goals
|
|
28
|
+
## Open risks
|
|
29
|
+
## Acceptance conditions
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
schema: yaaw.ticket/v1
|
|
3
|
+
id: TASK-XXX
|
|
4
|
+
revision: 1
|
|
5
|
+
spec: SPEC-XXX
|
|
6
|
+
spec_revision: 1
|
|
7
|
+
product_revision: 1
|
|
8
|
+
engineering_revision: 1
|
|
9
|
+
status: DRAFT
|
|
10
|
+
dependencies: []
|
|
11
|
+
decision_ids: []
|
|
12
|
+
expertise: []
|
|
13
|
+
---
|
|
14
|
+
# TASK-XXX
|
|
15
|
+
|
|
16
|
+
## Goal
|
|
17
|
+
## Source specification
|
|
18
|
+
## Product requirements
|
|
19
|
+
## Engineering decisions
|
|
20
|
+
## Relevant files / areas
|
|
21
|
+
## Required behavior
|
|
22
|
+
## Allowed scope
|
|
23
|
+
## Explicit non-goals
|
|
24
|
+
## Acceptance criteria
|
|
25
|
+
## Required tests
|
|
26
|
+
## Dependencies
|
|
27
|
+
## Expertise hints
|
|
28
|
+
## Status rationale
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Implement ticket
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
Implement one admitted bounded ticket and produce reviewable evidence.
|
|
5
|
+
|
|
6
|
+
## Preconditions
|
|
7
|
+
Ticket is `READY`, dependencies pass, source revisions are current, and repository state is consistent.
|
|
8
|
+
|
|
9
|
+
## Procedure
|
|
10
|
+
1. Load the ticket, referenced product/spec/decisions, `.yaaw-core/rules/changeability.md`, relevant rules/expertise, and relevant code only.
|
|
11
|
+
2. Record `READY -> IN_PROGRESS` with transition provenance and repository identity.
|
|
12
|
+
3. Establish the minimum authorized implementation surface before editing.
|
|
13
|
+
4. Implement strictly within allowed scope while applying only the changeability principles relevant to the changed surface: visible main path, domain naming, external boundaries, valid-state modeling, decision/side-effect separation, useful failures, and focused change scope.
|
|
14
|
+
5. Do not perform style-only rewrites, speculative abstractions, or unrelated cleanup. If a discovered maintainability issue is not necessary for safe ticket completion, leave it unchanged and surface it as a future planning candidate when materially valuable.
|
|
15
|
+
6. If a material missing decision appears, transition to `REPLAN_REQUIRED` or `BLOCKED`; do not invent it.
|
|
16
|
+
7. Execute `implementation.verify-ticket`, including targeted verification for materially affected changeability properties.
|
|
17
|
+
8. Persist evidence tied to ticket/spec revisions and repository identity.
|
|
18
|
+
9. Transition `IN_PROGRESS -> REVIEW_REQUIRED` only when required evidence exists.
|
|
19
|
+
|
|
20
|
+
## Output
|
|
21
|
+
Reviewable implementation plus evidence, or explicit replan/blocker state.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Repair ticket
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
Correct implementation defects while keeping the accepted ticket/spec contract unchanged.
|
|
5
|
+
|
|
6
|
+
## Preconditions
|
|
7
|
+
Ticket is `REPAIR_REQUIRED` and latest review result is `REPAIR` against the same current contract revisions.
|
|
8
|
+
|
|
9
|
+
## Procedure
|
|
10
|
+
1. Load the same ticket contract, `.yaaw-core/rules/changeability.md`, latest review findings, and relevant code/evidence.
|
|
11
|
+
2. Repair only what is needed to satisfy the unchanged plan and the concrete review findings; do not broaden scope into adjacent cleanup.
|
|
12
|
+
3. Apply the relevant changeability principles when they are part of the defect or needed for a safe repair.
|
|
13
|
+
4. If repair requires product/architecture contract changes, transition to `REPLAN_REQUIRED` and stop.
|
|
14
|
+
5. Rerun relevant verification, including any previously failed changeability check, and append a new evidence record.
|
|
15
|
+
6. Transition `REPAIR_REQUIRED -> REVIEW_REQUIRED` with provenance.
|
|
16
|
+
|
|
17
|
+
## Output
|
|
18
|
+
Repaired reviewable implementation or replan/blocker result.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Select ticket
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
Choose exactly one safe implementation unit.
|
|
5
|
+
|
|
6
|
+
## Inputs
|
|
7
|
+
Ticket states, dependencies, current source revisions, repository reality, and optional specifically requested ticket.
|
|
8
|
+
|
|
9
|
+
## Procedure
|
|
10
|
+
1. If state/repository disagree, route to orchestration recovery first.
|
|
11
|
+
2. Reject `DRAFT`, `BLOCKED`, `REPLAN_REQUIRED`, `REPAIR_REQUIRED`, `REVIEW_REQUIRED`, `PASS`, or stale-source tickets for normal implementation.
|
|
12
|
+
3. Choose the specifically requested eligible ticket, otherwise the next dependency-satisfied `READY` ticket.
|
|
13
|
+
4. Revalidate source spec/product/engineering revisions immediately before admission.
|
|
14
|
+
|
|
15
|
+
## Output
|
|
16
|
+
One admitted `READY` ticket or no-ticket/blocker result.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Verify ticket
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
Produce reproducible implementation evidence without self-accepting the ticket.
|
|
5
|
+
|
|
6
|
+
## Inputs
|
|
7
|
+
Ticket requirements/tests, changed surface, project tooling/rules, current repository identity.
|
|
8
|
+
|
|
9
|
+
## Procedure
|
|
10
|
+
1. Run every test/check required by the ticket.
|
|
11
|
+
2. Add targeted regression checks justified by the changed surface.
|
|
12
|
+
3. For each materially relevant changeability principle from `.yaaw-core/rules/changeability.md`, verify the concrete property rather than a style preference. Examples include boundary mapping behavior, invalid-state rejection, decision logic independent of side effects, stable error identity, and focused-diff inspection.
|
|
13
|
+
4. Record commands, exit/result, relevant checks (including relevant changeability checks), ticket/spec revisions, and exact repository identity in `.yaaw-core/project/evidence/EVIDENCE-TASK-NNN-VK.json` using the evidence schema.
|
|
14
|
+
5. Preserve failed evidence; do not rewrite it as success.
|
|
15
|
+
|
|
16
|
+
## Output
|
|
17
|
+
Evidence record(s). Verification never transitions a ticket to PASS; only Reviewer can accept.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Determine next action
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
Turn reconciled observed reality into one explicit, fresh dispatch contract.
|
|
5
|
+
|
|
6
|
+
## Inputs
|
|
7
|
+
Current observed-state snapshot, reconciled state, `core/routing.md`, workflow/expertise registries.
|
|
8
|
+
|
|
9
|
+
## Procedure
|
|
10
|
+
1. Choose exactly one next canonical workflow or terminal state using explicit routing precedence.
|
|
11
|
+
2. Select only expertise relevant to that workflow/artifact.
|
|
12
|
+
3. Write `.yaaw-core/runtime/handoff.json` conforming to the handoff schema with role, workflow ID, active artifact, exact references/revisions, selected expertise, expected output, repository identity, and transition sequence basis.
|
|
13
|
+
4. If the result is human-input, BLOCKED, or COMPLETE, write no executable handoff and return the stop result.
|
|
14
|
+
|
|
15
|
+
## Boundary
|
|
16
|
+
Do not perform target role semantic work here.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Dispatch one handoff
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
Execute exactly one already-selected canonical workflow. This file is not the orchestration loop.
|
|
5
|
+
|
|
6
|
+
## Inputs
|
|
7
|
+
`.yaaw-core/runtime/handoff.json` created by `orchestration.determine-next-action`.
|
|
8
|
+
|
|
9
|
+
## Procedure
|
|
10
|
+
1. Validate handoff schema, workflow registry entry, role, source artifact revisions, transition-sequence basis, and repository identity.
|
|
11
|
+
2. If any basis is stale, discard the handoff and return `STALE_HANDOFF` to `orchestration.route`; do not execute it.
|
|
12
|
+
3. Load target role contract, target workflow contract, exact references, selected expertise, and minimal relevant repository context.
|
|
13
|
+
4. Execute the target workflow once.
|
|
14
|
+
5. Require its expected durable output/state/evidence or an explicit stop result.
|
|
15
|
+
6. Mark/remove the consumed runtime handoff and return control to `orchestration.route`.
|
|
16
|
+
|
|
17
|
+
Never recursively dispatch `orchestration.dispatch` as its own target.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Inspect state
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
Create a non-mutating observed-reality snapshot that separates claims from evidence.
|
|
5
|
+
|
|
6
|
+
## Inputs
|
|
7
|
+
`.yaaw-core/project/state.json`, product/engineering artifacts, current specs/tickets/reviews/evidence/runtime files, project rules, and repository status/diff/log/branch.
|
|
8
|
+
|
|
9
|
+
## Procedure
|
|
10
|
+
1. Compute current repository identity.
|
|
11
|
+
2. Read machine-readable artifact metadata and active durable artifacts.
|
|
12
|
+
3. Compare state claims with artifact/repository/review evidence without repairing yet.
|
|
13
|
+
4. List inconsistencies, stale artifacts/handoffs, blockers, and candidate next states.
|
|
14
|
+
5. Write replaceable `.yaaw-core/runtime/observed-state.json` conforming to the observed-state schema.
|
|
15
|
+
|
|
16
|
+
## Output
|
|
17
|
+
Observed-state snapshot only; no semantic or ticket-state mutation.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Reconcile state
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
Repair only evidence-backed state inconsistencies before routing semantic work.
|
|
5
|
+
|
|
6
|
+
## Inputs
|
|
7
|
+
Current observed-state snapshot, state claims, artifact revisions, repository/evidence/review identity.
|
|
8
|
+
|
|
9
|
+
## Procedure
|
|
10
|
+
- apply `core/recovery.md`, `core/transitions.md`, and `core/invalidation.md`;
|
|
11
|
+
- examples: `IN_PROGRESS` + implementation + passing verification + no review -> `REVIEW_REQUIRED`; stale `PASS` -> `REPLAN_REQUIRED` or `REVIEW_REQUIRED` according to cause; `READY` + implementation already present -> recover/inspect rather than duplicate;
|
|
12
|
+
- never change product/architecture meaning during reconciliation;
|
|
13
|
+
- every repaired state records transition reason/evidence and increments transition sequence.
|
|
14
|
+
|
|
15
|
+
## Output
|
|
16
|
+
Reconciled state or `BLOCKED` when the last trustworthy boundary cannot be proven.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Recover interruption
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
Resume safely after context/session failure without duplicating already-completed work.
|
|
5
|
+
|
|
6
|
+
## Inputs
|
|
7
|
+
Active/recent artifact, state claims, runtime caches, repository identity/history/diff, verification/review evidence.
|
|
8
|
+
|
|
9
|
+
## Procedure
|
|
10
|
+
1. Discard stale runtime handoffs/snapshots.
|
|
11
|
+
2. Identify the last trustworthy completed boundary.
|
|
12
|
+
3. If implementation exists, prefer verification/review over reimplementation when evidence supports it.
|
|
13
|
+
4. Reconcile only via legal transitions with provenance.
|
|
14
|
+
5. If the boundary cannot be proven, return `BLOCKED` with exact missing evidence.
|
|
15
|
+
6. Return control to `orchestration.route` for normal next-action selection.
|
|
16
|
+
|
|
17
|
+
Never repeat destructive work merely because a context ended.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Orchestration main loop
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
Continuously restore project reality and execute one safe canonical workflow at a time until a true stop condition.
|
|
5
|
+
|
|
6
|
+
## Procedure
|
|
7
|
+
Repeat:
|
|
8
|
+
1. execute `orchestration.inspect-state`;
|
|
9
|
+
2. execute `orchestration.reconcile-state` when inconsistencies exist;
|
|
10
|
+
3. execute `orchestration.determine-next-action`;
|
|
11
|
+
4. if terminal/blocked/human-input stop condition is returned, stop;
|
|
12
|
+
5. execute `orchestration.dispatch` for the one persisted handoff;
|
|
13
|
+
6. require the dispatched workflow to persist its artifact/state/evidence output;
|
|
14
|
+
7. discard the consumed handoff and return to step 1.
|
|
15
|
+
|
|
16
|
+
## Loop safety
|
|
17
|
+
If the same repository identity, state, handoff, and expected output repeat without any durable mutation/evidence change, stop as `BLOCKED` with `no_progress` rather than spinning.
|
|
18
|
+
|
|
19
|
+
## Stop conditions
|
|
20
|
+
Human product/engineering answer required; evidence/permission unavailable; host requires approval for consequential action; or accepted scope is terminal `COMPLETE`.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Create specification
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
Materialize one coherent ready engineering frontier as a durable implementation contract.
|
|
5
|
+
|
|
6
|
+
## Preconditions
|
|
7
|
+
Current frontier readiness is `PASS` and its product/engineering revisions still match.
|
|
8
|
+
|
|
9
|
+
## Procedure
|
|
10
|
+
1. Allocate the next `SPEC-NNN` and create from the canonical template.
|
|
11
|
+
2. Record metadata: revision, product revision, engineering revision, frontier ID, decision IDs, and status.
|
|
12
|
+
3. Write goal, repository context, boundaries, behavior, data/state, interfaces, failure modes, security, UX/accessibility, tests, observability, migration/compatibility, non-goals, risks, and acceptance conditions as relevant.
|
|
13
|
+
4. Reference `ENG-*` decisions rather than copying planning history.
|
|
14
|
+
5. Validate required metadata/sections and confirm no unresolved material decision was invented.
|
|
15
|
+
6. Mark spec `ACCEPTED`; otherwise leave `DRAFT`/route back to planning.
|
|
16
|
+
|
|
17
|
+
## Output
|
|
18
|
+
One current accepted spec or an explicit planning gap.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Create tickets
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
Translate one current accepted spec into bounded dependency-aware implementation contracts.
|
|
5
|
+
|
|
6
|
+
## Preconditions
|
|
7
|
+
Source spec is `ACCEPTED` and its product/engineering revisions remain current.
|
|
8
|
+
|
|
9
|
+
## Procedure
|
|
10
|
+
1. Split work into coherent `TASK-NNN` units sized for a fresh Implementer.
|
|
11
|
+
2. Apply `.yaaw-core/rules/changeability.md` while defining boundaries. Encode only changeability constraints that are materially relevant to the ticket; do not turn stylistic preferences or speculative refactors into requirements.
|
|
12
|
+
3. Each ticket metadata records source spec/revision, product revision, engineering decision IDs, dependencies, expertise, ticket revision, and status.
|
|
13
|
+
4. Body records product requirements, relevant areas, required behavior, allowed scope, non-goals, acceptance criteria, required tests, and relevant engineering/changeability constraints when needed.
|
|
14
|
+
5. Ensure scope remains focused: supporting refactors are admitted only when necessary for safe implementation or verification of the ticket behavior; unrelated cleanup remains outside the ticket.
|
|
15
|
+
6. Validate ticket template/metadata.
|
|
16
|
+
7. Set `READY` only when dependencies and planning admission are satisfied; otherwise `DRAFT`.
|
|
17
|
+
|
|
18
|
+
## Output
|
|
19
|
+
Dependency-aware tickets that require no planning-chat memory and preserve focused, reviewable change boundaries.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Decision frontier
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
Prevent giant-planner behavior by separating what is known, answerable now, and legitimately unknown.
|
|
5
|
+
|
|
6
|
+
## Inputs
|
|
7
|
+
Current product/engineering state, repository evidence, and `.yaaw-core/rules/assumption-challenge.md`.
|
|
8
|
+
|
|
9
|
+
## Procedure
|
|
10
|
+
Before partitioning each candidate decision, apply the assumption-challenge rule and ask:
|
|
11
|
+
1. Are its prerequisites settled?
|
|
12
|
+
2. Is it materially relevant to the next implementation slice?
|
|
13
|
+
3. Can repository evidence answer it without the human?
|
|
14
|
+
4. Is it actually a product gap that must return to PRD/human authority?
|
|
15
|
+
5. Is it only a routine reversible Planner decision that should be resolved internally?
|
|
16
|
+
6. Does it contradict an accepted `ENG-*` decision or repository fact?
|
|
17
|
+
7. Is the apparent decision based on an unsupported assumption?
|
|
18
|
+
|
|
19
|
+
Then preserve the three-way partition exactly:
|
|
20
|
+
- **Known decisions**: settled and reusable;
|
|
21
|
+
- **Current frontier**: material decisions answerable now that block the next implementation slice;
|
|
22
|
+
- **Future fog**: questions dependent on future implementation/evidence.
|
|
23
|
+
|
|
24
|
+
Assign/update a stable frontier ID in engineering metadata. Only current-frontier decisions may block readiness for the next slice. Dependent questions with unsettled prerequisites remain outside the current frontier.
|
|
25
|
+
|
|
26
|
+
## Output
|
|
27
|
+
Updated known decisions/frontier/fog and the bounded scope subject to readiness review.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Planning discovery
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
Establish repository-backed engineering facts before asking technical questions.
|
|
5
|
+
|
|
6
|
+
## Inputs
|
|
7
|
+
Current product revision, existing engineering artifact, project rules, relevant specs/tickets, repository, and `.yaaw-core/rules/assumption-challenge.md`.
|
|
8
|
+
|
|
9
|
+
## Procedure
|
|
10
|
+
- inspect repository structure, language/framework/tooling, existing interfaces/data boundaries, tests, deployment/migration constraints, and relevant implementation areas;
|
|
11
|
+
- distinguish observed facts from assumptions;
|
|
12
|
+
- identify product requirements that interact with existing system constraints;
|
|
13
|
+
- apply the assumption-challenge rule to identify contradictions between accepted product requirements and repository reality, architecture constraints, unsupported assumptions, and potential challenge candidates;
|
|
14
|
+
- do not ask the user anything yet.
|
|
15
|
+
|
|
16
|
+
## Output
|
|
17
|
+
Repository/system observations, assumptions, contradictions/constraints, challenge candidates, and evidence references for `planning.write-understanding`.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Engineering question round
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
Resolve material engineering decisions at the current frontier without forcing fake precision into future fog.
|
|
5
|
+
|
|
6
|
+
## Inputs
|
|
7
|
+
Current product/engineering revisions, repository observations/evidence relevant to the current frontier, `.yaaw-core/rules/assumption-challenge.md`, and `.yaaw-core/rules/question-format.md`.
|
|
8
|
+
|
|
9
|
+
## Procedure
|
|
10
|
+
1. Load only the current decision frontier plus the accepted product/engineering revisions and evidence needed to reason about it.
|
|
11
|
+
2. Apply the assumption-challenge rule to detect contradictions, unsupported engineering assumptions, premature architecture, and material scenario/failure/data/security/migration/testing/operability gaps.
|
|
12
|
+
3. Eliminate questions answerable from repository facts.
|
|
13
|
+
4. Eliminate routine reversible implementation decisions the Planner owns.
|
|
14
|
+
5. Eliminate questions whose prerequisites are unresolved or that belong in future fog.
|
|
15
|
+
6. If a question is actually a missing product decision, return it to PRD/human authority rather than inventing product intent.
|
|
16
|
+
7. Do not reopen settled `ENG-*` decisions without new evidence, contradiction, changed upstream intent, or explicit request.
|
|
17
|
+
8. Ask only currently answerable material engineering questions; prefer fewer high-leverage questions over a full batch.
|
|
18
|
+
9. Format at most 10 using `question-format.md`; include recommendation plus a short reason when analysis supports one and accept free-form alternatives.
|
|
19
|
+
10. Stop for human input.
|
|
20
|
+
|
|
21
|
+
## Output
|
|
22
|
+
A bounded current-frontier question round awaiting human answers.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Planning readiness review
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
Use a fresh planning-review context to decide whether the next frontier is implementable without invention.
|
|
5
|
+
|
|
6
|
+
## Inputs
|
|
7
|
+
Current product/engineering revisions, target frontier ID, relevant repository evidence, current project rules, and `.yaaw-core/rules/assumption-challenge.md`.
|
|
8
|
+
|
|
9
|
+
## Primary question
|
|
10
|
+
Could a fresh Implementer execute the next frontier without inventing material product or architecture decisions?
|
|
11
|
+
|
|
12
|
+
## Supporting checks
|
|
13
|
+
- Does the contract depend on an untested material assumption?
|
|
14
|
+
- Does accepted engineering contradict repository evidence?
|
|
15
|
+
- Is terminology ambiguous enough to produce multiple materially valid implementations?
|
|
16
|
+
- Is an important failure or state transition undefined?
|
|
17
|
+
- Did Planning accidentally convert a product gap into an engineering decision?
|
|
18
|
+
- Are there hidden dependencies between current-frontier decisions?
|
|
19
|
+
|
|
20
|
+
Apply the assumption-challenge rule to these checks without expanding scope or reopening settled decisions gratuitously.
|
|
21
|
+
|
|
22
|
+
## Results
|
|
23
|
+
- `PASS`: frontier executable;
|
|
24
|
+
- `MISSING_DECISIONS`: Planner must resolve engineering questions;
|
|
25
|
+
- `PRODUCT_GAP`: return to PRD/human authority;
|
|
26
|
+
- `REPLAN`: accepted planning conflicts with later evidence;
|
|
27
|
+
- `BLOCKED`: required evidence unavailable.
|
|
28
|
+
|
|
29
|
+
Do not add a challenge-specific readiness result.
|
|
30
|
+
|
|
31
|
+
## Mutations
|
|
32
|
+
Record result, frontier ID, source revisions, reason, and evidence durably in `engineering.md`/state. A PASS is stale if its product/engineering basis changes.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Record engineering decisions
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
Convert accepted engineering answers into durable, independently resumable decisions.
|
|
5
|
+
|
|
6
|
+
## Inputs
|
|
7
|
+
Current engineering artifact, latest accepted engineering answers, current product authority, repository evidence, and `.yaaw-core/rules/assumption-challenge.md`.
|
|
8
|
+
|
|
9
|
+
## Procedure
|
|
10
|
+
1. Validate the accepted answer against current repository facts and role authority before recording it.
|
|
11
|
+
2. If the answer changes or supplies missing product meaning, return `PRODUCT_GAP` to PRD/human authority rather than encoding it as engineering truth.
|
|
12
|
+
3. If it conflicts with an accepted `ENG-*` decision, supersede that decision explicitly and execute invalidation/replan semantics; never silently overwrite history.
|
|
13
|
+
4. Otherwise create/update `ENG-NNN` entries with Status, Decision, Reason, material rejected alternatives, implications, and product/repository provenance.
|
|
14
|
+
5. Increment engineering revision for material contract changes.
|
|
15
|
+
6. Reapply the assumption-challenge rule to recompute assumptions, risks, unresolved questions, current frontier, future fog, and architecture spine.
|
|
16
|
+
7. Record durable conclusions rather than the challenge/question transcript.
|
|
17
|
+
8. Only after recording and recomputation may another question round begin.
|
|
18
|
+
|
|
19
|
+
## Output
|
|
20
|
+
Updated `engineering.md` with stable decision IDs, provenance, and recomputed assumptions/frontier/fog.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Replan
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
Repair an invalid engineering contract without erasing prior decisions or acceptance history.
|
|
5
|
+
|
|
6
|
+
## Preconditions
|
|
7
|
+
Repository evidence, product revision, review finding, or invalidation has made current planning materially insufficient.
|
|
8
|
+
|
|
9
|
+
## Procedure
|
|
10
|
+
1. Identify exact evidence and affected `ENG-*`/spec/ticket assumptions.
|
|
11
|
+
2. Mark superseded decisions explicitly; never overwrite their history.
|
|
12
|
+
3. Make new engineering decisions within current product authority and increment engineering revision.
|
|
13
|
+
4. Execute invalidation propagation to dependent specs/tickets/reviews.
|
|
14
|
+
5. Rebuild current decision frontier and rerun readiness before implementation resumes.
|
|
15
|
+
6. Revised tickets move through `DRAFT`/`READY` using legal transitions; never jump directly back to PASS.
|
|
16
|
+
|
|
17
|
+
## Output
|
|
18
|
+
Current engineering contract plus updated downstream admission state.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Planner route
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
Choose and execute the next canonical planning workflow from durable product/planning/repository state.
|
|
5
|
+
|
|
6
|
+
## Inputs
|
|
7
|
+
Current `product.md`, `engineering.md` if present, `.yaaw-core/project/state.json`, relevant specs/tickets, project rules, and repository reality.
|
|
8
|
+
|
|
9
|
+
## Priority
|
|
10
|
+
1. missing/stale repository understanding -> execute `planning.discover`, then `planning.write-understanding`, then re-evaluate;
|
|
11
|
+
2. `REPLAN_REQUIRED` or invalidated contract -> `planning.replan`;
|
|
12
|
+
3. accepted human answers not yet recorded -> `planning.record-decisions`;
|
|
13
|
+
4. unresolved current decision frontier -> `planning.question-round`;
|
|
14
|
+
5. readiness not current -> `planning.readiness-review`;
|
|
15
|
+
6. readiness PASS but no current accepted spec -> `planning.create-spec`;
|
|
16
|
+
7. accepted spec lacks admitted tickets -> `planning.create-tickets`;
|
|
17
|
+
8. otherwise return planning frontier `READY`.
|
|
18
|
+
|
|
19
|
+
## Execution
|
|
20
|
+
Resolve and execute selected workflow IDs through `registries/workflows.json`; do not merely report which one would run.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Write engineering understanding
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
Create the durable checkpoint from which a fresh Planner can continue.
|
|
5
|
+
|
|
6
|
+
## Inputs
|
|
7
|
+
Product interpretation, discovery observations, and `.yaaw-core/rules/assumption-challenge.md` results.
|
|
8
|
+
|
|
9
|
+
## Procedure
|
|
10
|
+
Update `.yaaw-core/project/engineering.md` using existing semantic sections rather than adding a challenge log:
|
|
11
|
+
- repository observations -> Existing system;
|
|
12
|
+
- unsupported beliefs -> Assumptions;
|
|
13
|
+
- actual unresolved decisions -> Unresolved questions / Current decision frontier;
|
|
14
|
+
- future-dependent issues -> Future fog;
|
|
15
|
+
- material dangers -> Risks;
|
|
16
|
+
- accepted engineering solutions -> `ENG-*` decisions;
|
|
17
|
+
- compatibility-critical structure -> Architecture spine.
|
|
18
|
+
|
|
19
|
+
Also preserve product interpretation and engineering constraints. Never store challenge/debate transcripts.
|
|
20
|
+
|
|
21
|
+
Increment engineering revision when the durable engineering contract/understanding materially changes. Record provenance for repository observations and product dependencies.
|
|
22
|
+
|
|
23
|
+
## Output
|
|
24
|
+
Updated engineering artifact ready for frontier analysis or questioning.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Create PRD
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
Initialize product memory and drive product discovery until the current frontier is ready or needs human answers.
|
|
5
|
+
|
|
6
|
+
## Inputs
|
|
7
|
+
Human's product goal, product template, current state, and `.yaaw-core/rules/assumption-challenge.md`.
|
|
8
|
+
|
|
9
|
+
## Procedure
|
|
10
|
+
1. If the canonical YAAW layout is incomplete, create missing `.yaaw-core/project/`, `.yaaw-core/runtime/`, and required durable artifacts from `.yaaw-core/templates/`; never overwrite existing project memory.
|
|
11
|
+
2. If `product.md` is absent inside an existing `.yaaw-core/project/`, create it from the canonical template and set product state to `draft`.
|
|
12
|
+
3. Capture the supplied goal without technicalizing it.
|
|
13
|
+
4. Identify the highest-value unresolved product questions by applying the assumption-challenge rule to the supplied goal and any already-accepted product context.
|
|
14
|
+
5. Execute `prd.question-round`; do not create a second interrogation loop in this workflow.
|
|
15
|
+
6. After every human response execute `prd.record-decisions` before asking more.
|
|
16
|
+
7. Execute `prd.readiness` when no material product ambiguity blocks the next engineering frontier.
|
|
17
|
+
|
|
18
|
+
## Mutations
|
|
19
|
+
Product artifact, product status, bootstrap state when required, and state-transition provenance.
|
|
20
|
+
|
|
21
|
+
## Output
|
|
22
|
+
Updated product artifact plus either human questions or a readiness result.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# PRD question round
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
Resolve only the material product unknowns visible at the current frontier.
|
|
5
|
+
|
|
6
|
+
## Inputs
|
|
7
|
+
Current `product.md`, unresolved product questions, `.yaaw-core/rules/assumption-challenge.md`, and `.yaaw-core/rules/question-format.md`.
|
|
8
|
+
|
|
9
|
+
## Procedure
|
|
10
|
+
1. Apply the assumption-challenge rule to accepted product truth and the unresolved product frontier.
|
|
11
|
+
2. Detect material contradictions, ambiguous terminology, unsupported product assumptions, premature abstractions, and important scenario/failure/edge gaps.
|
|
12
|
+
3. Exclude questions whose prerequisites remain unresolved.
|
|
13
|
+
4. Exclude engineering-only questions unless the human explicitly made implementation a product constraint.
|
|
14
|
+
5. Rank only material current-frontier product questions; prefer fewer high-leverage questions over a full batch.
|
|
15
|
+
6. Format at most 10 questions using `question-format.md`; use options, recommendation, and a short reason when useful.
|
|
16
|
+
7. Treat free-form answers as first-class and never force the offered options.
|
|
17
|
+
8. Stop for human answers.
|
|
18
|
+
|
|
19
|
+
## Output
|
|
20
|
+
A bounded question round awaiting human answers. Do not mutate accepted decisions before answers arrive.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# PRD readiness
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
Decide whether a fresh Planner can safely begin the next engineering frontier.
|
|
5
|
+
|
|
6
|
+
## Inputs
|
|
7
|
+
Current `product.md`, current accepted scope, and `.yaaw-core/rules/assumption-challenge.md`.
|
|
8
|
+
|
|
9
|
+
## Decision
|
|
10
|
+
Ask both:
|
|
11
|
+
1. Can a fresh Planner understand the goal, users, expected behavior, scope, constraints, non-goals, and remaining product unknowns without the original chat?
|
|
12
|
+
2. Are there any material product assumptions, contradictions, or ambiguous terms in the current engineering frontier that would force a fresh Planner to invent product intent?
|
|
13
|
+
|
|
14
|
+
Return:
|
|
15
|
+
- `READY` when intent is sufficient for the next engineering frontier and the second answer is no;
|
|
16
|
+
- `NEEDS_QUESTIONS` when material current-frontier product ambiguity remains;
|
|
17
|
+
- `BLOCKED` when required human/product evidence is unavailable.
|
|
18
|
+
|
|
19
|
+
Future fog is allowed. Readiness does not require every future product question to be solved.
|
|
20
|
+
|
|
21
|
+
## Mutations
|
|
22
|
+
On `READY`, mark product/state ready with current product revision. Do not claim every future requirement is known.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Record PRD decisions
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
Turn human answers into durable product truth before conversation continues.
|
|
5
|
+
|
|
6
|
+
## Inputs
|
|
7
|
+
Current product artifact, latest human answers, and `.yaaw-core/rules/assumption-challenge.md`.
|
|
8
|
+
|
|
9
|
+
## Procedure
|
|
10
|
+
1. Interpret only what the answers support and validate the conclusion against PRD product authority.
|
|
11
|
+
2. Persist supported meaning in the relevant product sections and accepted product decisions; record conclusions rather than challenge/question transcripts.
|
|
12
|
+
3. Remove settled questions and check the accepted answer for impact on previous accepted product decisions, scope, constraints, behavior, and non-goals.
|
|
13
|
+
4. Preserve explicit corrections and non-goals; if a contradiction/correction changes accepted meaning, update product truth explicitly rather than silently merging both meanings.
|
|
14
|
+
5. Increment product `revision` and record provenance only when accepted product meaning materially changes.
|
|
15
|
+
6. If downstream planning/spec/ticket artifacts already depend on changed intent, execute the invalidation policy in `core/invalidation.md`.
|
|
16
|
+
7. Reapply the assumption-challenge rule to discover newly exposed questions and recompute the unresolved current product frontier.
|
|
17
|
+
8. Only after the durable write and frontier recomputation may another question round begin.
|
|
18
|
+
|
|
19
|
+
## Output
|
|
20
|
+
Updated `product.md`, product revision/status, recomputed unresolved product frontier, and any invalidation result.
|