Files
Assistant/dev/tasks/ARCH-000003-diff-scope-guardrail-proposal.json
2026-08-16 16:39:55 +03:00

61 lines
2.1 KiB
JSON

{
"task_id": "ARCH-000003",
"task_revision": 1,
"architecture_revision": "ADR-0003",
"base_repo_revision": "d0556695ffa1da8710a17e944d4396114a7afd6b",
"risk_tier": "E",
"intent": "Produce a proposal-only decision for fail-closed comparison of the complete Git change set with the active task packet allowed_change_scope before promotion.",
"requirement_ids": ["INV-CHG-001", "INV-REC-001"],
"allowed_change_scope": {
"paths": [
"docs/DIFF_SCOPE_GUARDRAIL_PROPOSAL.md",
"dev/tasks/ARCH-000003-diff-scope-guardrail-proposal.json"
]
},
"forbidden_change_scope": {
"paths": [
"architecture/**",
"ci/**",
".gitea/**",
"security/**",
"database/**",
"modules/**",
"contracts/**",
"adapters/**",
"cmd/**",
"deploy/**",
"tests/**",
"dev/ACTIVE_TASK.json"
]
},
"allowed_architecture_delta": {
"new_cross_module_dependencies": 0,
"new_canonical_owners": 0,
"new_privileges": 0
},
"semantic_owner": "proposal-only",
"assumptions": [
"Promotion must validate one explicit active task rather than infer or union task packets",
"Historical task packets with abbreviated or non-resolvable bases remain immutable evidence and are not retroactively promoted",
"Exact diff-scope validation supplements architecture authority and independent Tier E review; it cannot grant either"
],
"acceptance_scenarios": [
"proposal defines an explicit versioned active-task pointer",
"proposal defines a valid immutable ancestor base requirement",
"proposal covers committed, staged, unstaged, untracked, deleted and renamed paths",
"proposal defines deterministic allowed path matching and fail-closed errors",
"proposal protects the promotion workflow itself",
"proposal defines a non-bypassable CI integration and bootstrap sequence",
"no protected architecture, guardrail, workflow or implementation file is modified"
],
"required_tests": [
"architecture preflight",
"diff-scope review"
],
"terminal_gap_states": [
"BLOCKED_BY_ARCHITECTURE_GAP",
"BLOCKED_BY_SPEC_GAP",
"BLOCKED_BY_CONFLICT"
]
}