Files
Assistant/dev/tasks/ARCH-000005-first-external-operation-proposal.json
m b4f86b8c46
CI / test (pull_request) Successful in 10s
CI / test (push) Successful in 10s
chore: activate external operation proposal
2026-08-16 18:52:44 +03:00

79 lines
3.7 KiB
JSON

{
"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/ACTIVE_TASK.json",
"dev/tasks/ARCH-000005-first-external-operation-proposal.json"
]
},
"forbidden_change_scope": {
"paths": [
"architecture/**",
"ci/**",
".gitea/**",
"security/**",
"database/**",
"modules/**",
"contracts/**",
"adapters/**",
"cmd/**",
"deploy/**",
"tests/**"
]
},
"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": ["select ARCH-000005 in the protected active-task pointer so promotion CI can validate this proposal", "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",
"the active task pointer selects this proposal and no implementation, protected architecture, 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"
]
}