145 lines
5.5 KiB
JSON
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"
|
|
]
|
|
}
|