DEV-000073 is NOT DONE; current work is partial/stabilized WIP only. go test ./cmd/devctl was last verified PASS. Remaining bootstrap/secret integration requires a stronger long-horizon model. This commit is preservation-only; current ancestry includes DEV-000072 candidate 36fec6c05cdf7aaf413fe... and must be reconciled before DEV-000073 promotion.
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"task_file": "dev/tasks/DEV-000072-semantic-interpretation-deferral-boundary.json",
|
||||
"task_id": "DEV-000072",
|
||||
"task_file": "dev/tasks/DEV-000073-production-deployment-continuity-safe-redeploy.json",
|
||||
"task_id": "DEV-000073",
|
||||
"task_revision": 1
|
||||
}
|
||||
|
||||
@@ -5,6 +5,14 @@
|
||||
"base_repo_revision": "64870798b9a50f895c99d24441703f366df5c98a",
|
||||
"risk_tier": "E",
|
||||
"intent": "Implement semantic interpretation and deferral boundary V1 so deterministic interpretation acts as a fast-path candidate rather than unquestionable final truth; preserve provenance between deterministic and cognitive candidates; support mixed intent and safer deferral without activating new providers.",
|
||||
"non_goal_scope": [
|
||||
"Do not build a dedicated naming subsystem in this task (for example, no assistant_name table/field).",
|
||||
"Do not implement dedicated favorite_color/disliked_food/project_role-like preference schemas in this task.",
|
||||
"Do not introduce a hardcoded 'запомни' keyword trigger or naming-specific memory trigger.",
|
||||
"Do not introduce dedicated naming memory, universal ontology, or graph/knowledge DB in this task.",
|
||||
"Treat naming/name-preferral utterances as generic semantic interpretation cases and test fixtures, not the target for persistence architecture changes.",
|
||||
"Any future durable memory/knowledge mechanism is out of scope for this task and must be captured as a follow-up requirement."
|
||||
],
|
||||
"requirement_ids": [
|
||||
"DEV-000071 measured baseline",
|
||||
"Deterministic candidate can decline/defer",
|
||||
@@ -136,6 +144,11 @@
|
||||
"reality evaluation comparisons",
|
||||
"production /chat acceptance"
|
||||
],
|
||||
"future_scope_requirements": [
|
||||
"Generic interaction-to-memory pipeline (common conceptual flow): interaction -> understood meaning -> potential memory/knowledge candidate -> subject/scope/provenance -> salience/relevance -> persistence decision -> relations/associations -> retrieval -> correction/consolidation.",
|
||||
"Support multiple ordinary human preference/intention domains (names, preferred forms of address, colors, dislikes, habits, relationships, project facts, machine characteristics, temporary constraints) without special schema-per-example.",
|
||||
"Use existing Epistemics/Experience/Identity/Situation foundations first; introduce new canonical concepts only when requirements and architecture review justify them."
|
||||
],
|
||||
"terminal_gap_states": [
|
||||
"BLOCKED_BY_SPEC_GAP",
|
||||
"BLOCKED_BY_ARCHITECTURE_GAP",
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
{
|
||||
"task_id": "DEV-000073",
|
||||
"task_revision": 1,
|
||||
"architecture_revision": "DEV-000072-baseline",
|
||||
"base_repo_revision": "36fec6c05cdf7aaf413ffe6b9437f07b03fc7b6b",
|
||||
"risk_tier": "E",
|
||||
"intent": "Introduce deterministic two-phase production deployment (prepare/apply) and stale/health/state gates in devctl without changing runtime semantics, so missing required production deployment inputs can never trigger an unsafe recreate.",
|
||||
"requirement_ids": [
|
||||
"prepare/apply separation",
|
||||
"fail-closed required input resolution",
|
||||
"exact artifact pinning",
|
||||
"stale plan rejection",
|
||||
"known-good/rollback capture",
|
||||
"health verification on apply",
|
||||
"no production mutation from ambient shell"
|
||||
],
|
||||
"allowed_change_scope": {
|
||||
"paths": [
|
||||
"AGENTS.md",
|
||||
"cmd/devctl/**",
|
||||
"docs/DEPLOYMENT.md",
|
||||
"docs/PROJECT_STATUS.md",
|
||||
"docs/evidence/deployment-continuity-dev000073.md",
|
||||
"architecture/UNRESOLVED_QUESTIONS.md",
|
||||
"dev/tasks/DEV-000072-semantic-interpretation-deferral-boundary.json",
|
||||
"docs/evidence/production-recovery-incident-20260818.md",
|
||||
"dev/ACTIVE_TASK.json",
|
||||
"dev/tasks/DEV-000073-production-deployment-continuity-safe-redeploy.json"
|
||||
]
|
||||
},
|
||||
"forbidden_change_scope": {
|
||||
"paths": []
|
||||
},
|
||||
"allowed_architecture_delta": {
|
||||
"new_cross_module_dependencies": 0,
|
||||
"new_canonical_owners": 0,
|
||||
"new_privileges": 0,
|
||||
"new_third_party_dependencies": 0,
|
||||
"new_provider_adapters": 0,
|
||||
"new_database_owner_roles": 0
|
||||
},
|
||||
"semantic_owner": "devctl",
|
||||
"contracts": {
|
||||
"consume": [
|
||||
"contracts.identity"
|
||||
],
|
||||
"may_change": []
|
||||
},
|
||||
"acceptance_scenarios": [
|
||||
"fresh shell prepare without ambient production env fails unless required values are in --env-file",
|
||||
"deploy apply refuses when plan is stale due input/config/revision changes",
|
||||
"deploy prepare can create READY and BLOCKED plans with machine-readable reasons",
|
||||
"deploy apply succeeds only for READY plans and verifies deployment artifacts and /health endpoints",
|
||||
"known-good revision is captured deterministically from production manifest or explicit recovery snapshot",
|
||||
"healthy production is preserved when PREPARE or APPLY refuse to proceed"
|
||||
],
|
||||
"required_tests": [
|
||||
"go test ./cmd/devctl",
|
||||
"go run ./cmd/devctl preflight -task dev/tasks/DEV-000073-production-deployment-continuity-safe-redeploy.json",
|
||||
"go run ./cmd/devctl check-diff -task dev/tasks/DEV-000073-production-deployment-continuity-safe-redeploy.json",
|
||||
"go run ./cmd/devctl deploy prepare --target production --compose deploy/docker-compose.prod.yml --env-file <production-bootstrap.env> --plan .devctl/deployment-plans/test-dev073.json",
|
||||
"go run ./cmd/devctl deploy apply --plan .devctl/deployment-plans/test-dev073.json --dry-run",
|
||||
"go run ./cmd/devctl deploy apply --plan .devctl/deployment-plans/missing.json"
|
||||
],
|
||||
"terminal_gap_states": [
|
||||
"BLOCKED_BY_SPEC_GAP",
|
||||
"BLOCKED_BY_ARCHITECTURE_GAP",
|
||||
"BLOCKED_BY_MISSING_CAPABILITY",
|
||||
"BLOCKED_BY_CONFLICT",
|
||||
"REQUIRES_MIGRATION_DECISION"
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user