Files
Assistant/dev/tasks/DEV-000066-human-response-continuation-semantics.json
m 8b9b841645
CI / test (push) Successful in 21s
CI / test (pull_request) Successful in 16s
DEV-000066 human response continuation semantics
2026-08-17 17:02:33 +03:00

145 lines
5.5 KiB
JSON

{
"task_id": "DEV-000066",
"task_revision": 1,
"architecture_revision": "ADR-0015",
"base_repo_revision": "e8e51ffdba38ab901e275283e46f2b45bb6affe9",
"risk_tier": "E",
"intent": "Add provider-neutral human response and continuation semantics for existing context, with reminders/attention as the first implementation and no reminder-specific parallel subsystem.",
"requirement_ids": [
"ADR-0015",
"INV-AUTH-001",
"INV-OWN-001",
"INV-CONT-001",
"INV-EPI-001",
"Human response is not automatic world truth",
"Contextual response target resolution without internal IDs"
,
"ActiveProjectFocus is contextual evidence, not a global user mode"
],
"allowed_change_scope": {
"modules": [
"continuity",
"interaction"
],
"paths": [
"architecture/adrs/ADR-0015-human-response-continuation-semantics.md",
"architecture/architecture-registry.yaml",
"architecture/architecture-registry.json",
"contracts/continuity/**",
"contracts/interaction/**",
"modules/continuity/**",
"modules/interaction/**",
"adapters/postgres/**",
"database/bootstrap/**",
"database/migrations/**",
"cmd/continuity-runtime/**",
"cmd/core-runtime/**",
"cmd/creator-web/**",
"tests/owner_acl/**",
"tests/cognitive_advisory/**",
"docs/PROJECT_STATUS.md",
"dev/ACTIVE_TASK.json",
"dev/tasks/DEV-000066-human-response-continuation-semantics.json"
]
},
"forbidden_change_scope": {
"paths": [
"architecture/ARCHITECTURE_CONSTITUTION.md",
"modules/authority/**",
"modules/commit/**",
"cmd/commit-runtime/**",
"security/**",
"ci/**",
".gitea/**"
]
},
"allowed_architecture_delta": {
"new_cross_module_dependencies": 0,
"new_canonical_owners": 0,
"new_privileges": 0,
"new_third_party_dependencies": 0,
"new_provider_adapters": 0
},
"contracts": {
"consume": [
"Interaction HumanUtterance / OriginalHumanIntent",
"Continuity ProspectiveItem",
"Continuity AttentionItem"
],
"may_change": [
"contracts/continuity@v1"
]
},
"semantic_owner": "continuity",
"canonical_state": [
"HumanResponse",
"ResponseTargetResolution",
"ProspectiveItem",
"AttentionItem"
],
"state_transitions": [
"single obvious delivered reminder attention + COMPLETE -> ProspectiveItem SATISFIED and Attention RESOLVED",
"single obvious delivered reminder attention + SNOOZE -> same ProspectiveItem ARMED at new due time and Attention RESOLVED",
"single obvious reminder/attention + CANCEL -> ProspectiveItem SUPPRESSED and Attention SUPPRESSED when present",
"ambiguous target -> clarification response record and no semantic mutation"
],
"side_effects_and_privileges": [
"No external mutation is introduced",
"Human responses mutate only Continuity-owned state through Continuity runtime",
"User-reported completion is recorded as USER_REPORTED_COMPLETE, not verified world truth",
"No cognitive model is required for obvious deterministic response operations",
"Docker-test remains prohibited"
],
"persistence_and_migrations": [
"continuity.human_responses append-only table",
"Attention response closure fields",
"no cross-owner FK",
"no cross-owner SQL join dependency"
],
"failure_retry_restart": [
"HumanResponse rows are append-only audit/history",
"Ambiguous target resolution fails closed with clarification",
"Snoozed reminders are re-armed in canonical prospective state and survive restart",
"Cancelled/suppressed reminders are excluded by the existing due scanner"
],
"assumptions": [
"DEV-000065 is production baseline",
"Continuity remains canonical owner for future obligation continuation",
"Interaction remains canonical owner of utterances and original human intent",
"Buttons are optional UI projection over the same chat response endpoint"
],
"acceptance_scenarios": [
"Single active reminder plus 'Готово' resolves the correct target",
"Single active reminder plus 'Отложи на час' reschedules the same prospective item",
"'Отмени' suppresses the reminder and prevents future delivery",
"Two possible targets plus ambiguous 'Отмени' asks clarification and does not mutate",
"Historical utterances remain append-only",
"Attention closes appropriately",
"User-reported completion does not become verified world fact",
"Obvious response operations work LLM-free",
"Cognition unavailable does not break obvious operations",
"UI buttons and natural language use the same backend semantics",
"Future non-reminder response target kinds can be represented"
,
"Unrelated new human intents do not inherit stale ActiveProjectFocus",
"Human UI does not expose technical project provenance labels"
],
"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 complete/snooze/cancel acceptance",
"production /chat and /today verification"
],
"terminal_gap_states": [
"BLOCKED_BY_ARCHITECTURE_GAP",
"BLOCKED_BY_SPEC_GAP",
"BLOCKED_BY_MISSING_CAPABILITY",
"BLOCKED_BY_CONFLICT"
]
}