This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
{
|
||||
"task_id": "ARCH-000005",
|
||||
"task_revision": 1,
|
||||
"architecture_revision": "ADR-0004",
|
||||
"base_repo_revision": "91d03b730d1bdbbe8e67b831fb21046768c4df5e",
|
||||
"risk_tier": "E",
|
||||
"intent": "Produce a proposal-only decision for Domovoy's first real external operation, including typed semantics, authority, capability binding, idempotency, reconciliation, secret lifecycle, and safe implementation slices without installing credentials or changing runtime behavior.",
|
||||
"requirement_ids": ["INV-AUTH-001", "INV-OWN-001", "CONSTITUTION-1.3.5", "CONSTITUTION-1.3.14", "CONSTITUTION-1.3.31"],
|
||||
"allowed_change_scope": {
|
||||
"modules": [],
|
||||
"paths": [
|
||||
"docs/FIRST_EXTERNAL_OPERATION_PROPOSAL.md",
|
||||
"dev/tasks/ARCH-000005-first-external-operation-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,
|
||||
"new_third_party_dependencies": 0
|
||||
},
|
||||
"contracts": {
|
||||
"consume": ["Architecture Constitution", "Core Semantic Model V1", "ADR-0003", "existing CapabilityBinding ownership", "existing Commit/Executor boundary"],
|
||||
"may_change": []
|
||||
},
|
||||
"semantic_owner": "proposal-only; no architecture decision is accepted by this task",
|
||||
"canonical_state": ["none"],
|
||||
"state_transitions": ["none"],
|
||||
"side_effects_and_privileges": ["none; no endpoint call, secret creation, deployment, or runtime mutation"],
|
||||
"persistence_and_migrations": ["none"],
|
||||
"failure_retry_restart": ["proposal must specify deterministic idempotency and read-only reconciliation", "implementation remains blocked until explicit acceptance and a concrete compatible destination"],
|
||||
"assumptions": [
|
||||
"The first external operation should extend the existing Creator and Continuity flow rather than introduce an unrelated automation domain",
|
||||
"A destination chosen later can provide an idempotent create-by-ActionIntentID and read-only lookup protocol",
|
||||
"No arbitrary URL or arbitrary provider payload should cross the Creator or model boundary",
|
||||
"docker-test remains prohibited"
|
||||
],
|
||||
"acceptance_scenarios": [
|
||||
"proposal compares notification, arbitrary webhook, file export, Git mutation, and direct provider alternatives",
|
||||
"proposal recommends one typed operation without treating the provider mechanism as domain meaning",
|
||||
"proposal keeps destination binding canonical under the existing Capability owner and secrets external",
|
||||
"proposal requires explicit Creator confirmation, live Work justification, current authority, and current capability binding revision",
|
||||
"proposal defines idempotent execution, UNKNOWN_OUTCOME, read-only reconciliation, and binding retirement behavior",
|
||||
"proposal prevents SSRF, redirects, arbitrary URL/body, ambient credentials, and blind retry",
|
||||
"proposal identifies the minimum external destination facts still requiring explicit acceptance",
|
||||
"no implementation, protected architecture, active task pointer, credential, or deployment state is changed"
|
||||
],
|
||||
"required_tests": [
|
||||
"architecture preflight",
|
||||
"exact diff scope",
|
||||
"constitutional and ADR-0003 semantic review",
|
||||
"go test",
|
||||
"go vet",
|
||||
"CI"
|
||||
],
|
||||
"terminal_gap_states": [
|
||||
"BLOCKED_BY_SPEC_GAP",
|
||||
"BLOCKED_BY_ARCHITECTURE_GAP",
|
||||
"BLOCKED_BY_MISSING_CAPABILITY",
|
||||
"BLOCKED_BY_CONFLICT"
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user