153 lines
5.7 KiB
JSON
153 lines
5.7 KiB
JSON
{
|
|
"task_id": "DEV-000065",
|
|
"task_revision": 1,
|
|
"architecture_revision": "ADR-0014",
|
|
"base_repo_revision": "6e73318e49991b40a5ed750c604792cbd95bd325",
|
|
"risk_tier": "E",
|
|
"intent": "Add assistant presence through Continuity-owned due reminder processing, typed Attention foundation, governed outbound notification delivery, and a human-facing Assistant surface with Chat, Today/Attention, and History while preserving the Operator Console.",
|
|
"requirement_ids": [
|
|
"ADR-0014",
|
|
"ADR-0005",
|
|
"INV-AUTH-001",
|
|
"INV-OWN-001",
|
|
"INV-CONT-001",
|
|
"INV-EPI-001",
|
|
"Capability availability is not Authority",
|
|
"Durable future obligations survive runtime restart"
|
|
],
|
|
"allowed_change_scope": {
|
|
"modules": [
|
|
"continuity",
|
|
"commit",
|
|
"capability",
|
|
"interaction"
|
|
],
|
|
"paths": [
|
|
"architecture/adrs/ADR-0014-assistant-presence-attention-human-surface.md",
|
|
"architecture/architecture-registry.yaml",
|
|
"architecture/architecture-registry.json",
|
|
"contracts/continuity/**",
|
|
"contracts/commit/**",
|
|
"contracts/capability/**",
|
|
"modules/continuity/**",
|
|
"modules/commit/**",
|
|
"adapters/postgres/**",
|
|
"database/bootstrap/**",
|
|
"database/migrations/**",
|
|
"cmd/continuity-runtime/**",
|
|
"cmd/commit-runtime/**",
|
|
"cmd/core-runtime/**",
|
|
"cmd/creator-web/**",
|
|
"tests/owner_acl/**",
|
|
"tests/cognitive_advisory/**",
|
|
"docs/PROJECT_STATUS.md",
|
|
"dev/ACTIVE_TASK.json",
|
|
"dev/tasks/DEV-000065-assistant-presence-attention-human-surface.json"
|
|
]
|
|
},
|
|
"forbidden_change_scope": {
|
|
"paths": [
|
|
"architecture/ARCHITECTURE_CONSTITUTION.md",
|
|
"security/**",
|
|
"ci/**",
|
|
".gitea/**"
|
|
]
|
|
},
|
|
"allowed_architecture_delta": {
|
|
"new_cross_module_dependencies": 1,
|
|
"new_canonical_owners": 0,
|
|
"new_privileges": 0,
|
|
"new_third_party_dependencies": 0,
|
|
"new_provider_adapters": 0
|
|
},
|
|
"contracts": {
|
|
"consume": [
|
|
"Continuity ProspectiveItem",
|
|
"Commit prospective notification operation",
|
|
"Capability notification binding",
|
|
"Interaction ChatMessage",
|
|
"Authority Creator grant",
|
|
"CredentialRef Secret Resolver foundation"
|
|
],
|
|
"may_change": [
|
|
"contracts/continuity@v1",
|
|
"contracts/commit@v1"
|
|
]
|
|
},
|
|
"semantic_owner": "continuity",
|
|
"canonical_state": [
|
|
"ProspectiveItem",
|
|
"AttentionItem"
|
|
],
|
|
"state_transitions": [
|
|
"ProspectiveItem ARMED -> TRIGGERED -> REVALIDATING -> DELIVERED for due reminder processing",
|
|
"AttentionItem PENDING -> DELIVERING -> DELIVERED for human contact outcome",
|
|
"No ACTIVE cognitive binding promotion",
|
|
"No OpenAI activation"
|
|
],
|
|
"side_effects_and_privileges": [
|
|
"Continuity runtime polls canonical prospective state and does not own external mutation",
|
|
"Commit runtime remains the only outbound notification executor boundary",
|
|
"Notification delivery uses existing CapabilityBinding and idempotent receiver protocol",
|
|
"Human Assistant UI reads canonical runtime APIs and hides internal identifiers by default",
|
|
"Docker-test remains prohibited"
|
|
],
|
|
"persistence_and_migrations": [
|
|
"continuity owner-local attention_items table",
|
|
"no cross-owner FK",
|
|
"no cross-owner SQL join dependency",
|
|
"Commit authorized action and attempt persistence remains Commit-owned",
|
|
"Notification receipt persistence remains receiver-owned delivery evidence"
|
|
],
|
|
"failure_retry_restart": [
|
|
"Due detection reads ARMED rows from canonical PostgreSQL state",
|
|
"CAS/unique source constraints prevent duplicate AttentionItem creation",
|
|
"Successful delivery moves AttentionItem to DELIVERED and prevents repeated delivery",
|
|
"Unavailable LLM does not block deterministic reminder firing",
|
|
"Unavailable notification delivery records non-success without inventing completion"
|
|
],
|
|
"assumptions": [
|
|
"DEV-000064 is production baseline",
|
|
"Continuity is canonical owner of future obligations and attention state for this generation",
|
|
"Commit and existing notification receiver remain the outbound mutation path",
|
|
"The first human notification channel is the existing production receiver/Windows display path",
|
|
"CPU CANARY may remain available but reminder firing is deterministic and LLM-free"
|
|
],
|
|
"acceptance_scenarios": [
|
|
"Reminder becomes due",
|
|
"Due reminder produces governed AttentionItem",
|
|
"Attention can produce notification through Commit",
|
|
"Delivery outcome is persisted",
|
|
"No duplicate delivery after success",
|
|
"Runtime restart does not lose an ARMED reminder",
|
|
"Cancelled/suppressed reminder is not delivered",
|
|
"LLM unavailable does not prevent deterministic reminder delivery",
|
|
"No cognitive model is required merely to fire a known reminder",
|
|
"CapabilityGap is rendered human-readable",
|
|
"Human UI requires no internal IDs",
|
|
"Operator Console remains available",
|
|
"Authority boundaries remain unchanged",
|
|
"Owner ACL passes",
|
|
"LLM-free audit passes",
|
|
"Production live delayed reminder delivers once",
|
|
"Today/Attention surface is built from canonical state"
|
|
],
|
|
"required_tests": [
|
|
"go test ./...",
|
|
"go vet ./...",
|
|
"go run ./cmd/devctl preflight -active dev/ACTIVE_TASK.json",
|
|
"go run ./cmd/devctl check-architecture",
|
|
"go run ./cmd/devctl check-diff -active dev/ACTIVE_TASK.json",
|
|
"tests/cognitive_advisory/cognitive_worker_env_policy_test.ps1",
|
|
"tests/owner_acl/verify.ps1 -DockerContext docker-prod -PostgresContainer assistant-postgres-1",
|
|
"production live delayed reminder acceptance",
|
|
"production /chat and /healthz verification"
|
|
],
|
|
"terminal_gap_states": [
|
|
"BLOCKED_BY_ARCHITECTURE_GAP",
|
|
"BLOCKED_BY_SPEC_GAP",
|
|
"BLOCKED_BY_MISSING_CAPABILITY",
|
|
"BLOCKED_BY_CONFLICT"
|
|
]
|
|
}
|