Skip to content

Commit ea7bdc5

Browse files
committed
fix(orchestration): preserve conditional knowledge escalation
1 parent b712bc7 commit ea7bdc5

4 files changed

Lines changed: 9 additions & 4 deletions

File tree

references/assets/orchestration/contract/specification-v1.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ impact_decisions:
105105
106106
Every material relation has exactly one `accepted | excluded | blocking` disposition. `projects_to` is required for accepted relations and must name stable requirements, constraints, interfaces, acceptance criteria, or validation targets. Excluded relations require evidence and a concise reason; "the user did not mention it" is not sufficient. Blocking relations create blocking Open Questions and keep the quality gate blocked.
107107

108-
Use `none_relevant` only after a bounded scan finds no material relation and records its searched boundary, reason, and `stopping_reason`. Stop when every frontier relation is immaterial, already projected, excluded with evidence, or blocked for authority. Escalate to targeted Git history, prior work artifacts, or execution evidence only for contradictory current-state evidence, unresolved ownership, material regression/causality, or a suspected governing legacy decision; do not require full-history archaeology by default.
108+
Use `none_relevant` only after a bounded scan finds no material relation and records its searched boundary, reason, and `stopping_reason`. Stop when every frontier relation is immaterial, already projected, excluded with evidence, or blocked for authority. Escalate to targeted Git history, prior work artifacts, execution evidence, or durable knowledge only for contradictory current-state evidence, unresolved ownership, material regression/causality, or a suspected governing legacy decision; do not require full-history archaeology or broad knowledge retrieval by default.
109109

110110
## 5. Requirements, Constraints & Guidelines
111111

references/assets/orchestration/workflow.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ Final review aggregates accepted task dispositions from execution and task-revie
114114

115115
Only approved keep-summarizing owners write durable knowledge. Final orchestration review owns approved persistence delegation and may invoke that owner, then validate returned paths or an evidence-backed no-write result; executors and orchestration itself must not write knowledge directly.
116116

117-
Specification authoring materializes `impact_decisions` from bounded current-state evidence about the requested surface, upstream/downstream relations, validation surfaces, and relevant dirty work. Each material relation is `accepted | excluded | blocking`: accepted relations use `projects_to` for stable specification IDs, excluded relations require evidence, and blocking relations prevent verification. A greenfield result may use `none_relevant` only with the searched boundary, reason, and `stopping_reason`. Targeted Git history, prior work artifacts, or execution evidence is an escalation for contradiction, unresolved ownership, material regression/causality, or suspected governing legacy decisions—not mandatory full-history archaeology. This impact-decision view is compared by semantic convergence; repository traversal remains owned by specification authoring.
117+
Specification authoring materializes `impact_decisions` from bounded current-state evidence about the requested surface, upstream/downstream relations, validation surfaces, and relevant dirty work. Each material relation is `accepted | excluded | blocking`: accepted relations use `projects_to` for stable specification IDs, excluded relations require evidence, and blocking relations prevent verification. A greenfield result may use `none_relevant` only with the searched boundary, reason, and `stopping_reason`. Targeted Git history, prior work artifacts, execution evidence, or durable knowledge is an escalation for contradiction, unresolved ownership, material regression/causality, or suspected governing legacy decisions—not mandatory full-history archaeology or broad knowledge retrieval. This impact-decision view is compared by semantic convergence; repository traversal remains owned by specification authoring.
118118

119119
## Lightweight development lane
120120

skills/orch-create-specification/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ Create the smallest authoritative specification under `.work-bundle/orchestratio
1616
3. Through `ks-what-is-helpful`, discover with polarity-neutral and stage/perspective/status-neutral query anchors. `implementation_spec` is classification and output-grouping intent, not a discovery-stage lifecycle filter.
1717
4. Classify results as authority, candidate, background, or blocked. Only authority shapes requirements and only accepted authority enters front-matter `source_knowledge` as `path` plus the already-reconciled `constraint`; keep candidate, background, blocked, superseded, supporting, opposing, constraining, unresolved/open-question, obsolete, and irrelevant-with-reason evidence in Source Context when material. Downstream planning allocates `AUTH-NNN` aliases from the accepted list so execution does not require `.work-bundle/knowledge/` reads or expose knowledge paths.
1818
5. Build one bounded current-state impact basis from the requested surface, material upstream dependencies or producers, downstream consumers, validation/test surfaces, and relevant dirty work. Record `impact_decisions` and give each material relation exactly one disposition: `accepted | excluded | blocking`. An accepted relation must use `projects_to` to name stable requirement, constraint, interface, acceptance-criterion, or validation-target IDs. An excluded relation requires evidence and a reason stronger than user omission. A blocking relation creates a blocking open question. When no material relation exists, record `none_relevant` with the searched boundary, reason, and `stopping_reason`.
19-
6. Stop current-state traversal when every frontier relation is immaterial, already projected to a stable ID, excluded with evidence, or blocked for authority. Escalate to targeted Git history, prior work artifacts, or execution evidence only when current-state evidence is contradictory, ownership is unresolved, regression or causality is material, or a governing legacy decision is suspected. Do not require full-history archaeology by default. For WorkBundle scope, include related active violations by ID, severity, deviation, scope, required resolution, and expected review closure. Exact-current-work conflicts may remain specification-owned.
19+
6. Stop current-state traversal when every frontier relation is immaterial, already projected to a stable ID, excluded with evidence, or blocked for authority. Escalate to targeted Git history, prior work artifacts, execution evidence, or durable knowledge only when current-state evidence is contradictory, ownership is unresolved, regression or causality is material, or a governing legacy decision is suspected. Do not require full-history archaeology or broad knowledge retrieval by default. For WorkBundle scope, include related active violations by ID, severity, deviation, scope, required resolution, and expected review closure. Exact-current-work conflicts may remain specification-owned.
2020
7. Ask Design Interrogation questions only for unresolved intent that changes requirements, architecture, workflow, API, persistence, validation, execution safety, or user purpose. Evidence class alone does not make an open question blocking.
2121
8. Normalize stable IDs, requirements, constraints, interfaces, acceptance criteria, decisions, open questions, and Knowledge Base Update disposition.
2222
9. Decide execution-workspace policy without provisioning it:

tests/test_orchestration_workflow_contracts.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -345,9 +345,14 @@ def test_specification_contract_requires_bounded_impact_decisions() -> None:
345345
"dirty work",
346346
]:
347347
assert token in text
348+
assert "durable knowledge" in text
349+
assert "projects_to" in text and "stable" in text
350+
for text in (contract, skill):
351+
assert "blocking" in text and "open question" in text.lower()
352+
assert "blocking relations prevent verification" in workflow
348353
assert "impact-decision view" in skill
349354
assert "keep repository traversal out of `dev-semantic-convergence`" in skill
350-
assert "Git history, prior work artifacts, or execution evidence" in skill
355+
assert "Git history, prior work artifacts, execution evidence, or durable knowledge" in skill
351356
assert "user did not mention" in contract
352357
assert "existing downstream consumer" in evals
353358
assert "greenfield isolated utility" in evals

0 commit comments

Comments
 (0)