Files
Assistant/dev/tasks/GEN2-024-multi-person-realms-identity-boundaries-and-contextual-source-trust.json
T
2026-08-29 01:53:27 +03:00

123 lines
5.9 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"task_id": "GEN2-024",
"task_revision": 1,
"architecture_revision": "ARCH-GEN2-000",
"base_repo_revision": "gen2-integration",
"risk_tier": "E",
"intent": "Не смешивать владельца, членов семьи, гостей, голосовые источники и shared/private memory.",
"requirement_ids": [
"REQ-GEN2-024-GOAL",
"REQ-GEN2-024-BOUNDARY",
"REQ-GEN2-024-GATE"
],
"allowed_change_scope": {
"modules": [
"identity",
"world",
"epistemics",
"interaction"
],
"paths": [
"modules/identity/**",
"contracts/identity/**",
"modules/world/**",
"contracts/world/**",
"modules/epistemics/**",
"contracts/epistemics/**",
"modules/interaction/**",
"contracts/interaction/**",
"adapters/postgres/identity_repository.go",
"adapters/postgres/world_repository.go",
"adapters/postgres/epistemics_repository.go",
"adapters/postgres/interaction_repository.go",
"database/migrations/*.sql",
"tests/**",
"dev/ACTIVE_TASK.json",
"dev/tasks/GEN2-024-multi-person-realms-identity-boundaries-and-contextual-source-trust.json"
]
},
"forbidden_change_scope": {
"paths": [
"security/**",
"go.mod",
"go.sum",
"architecture/**",
".gitea/workflows/**",
"deploy/**",
"adapters/models/**"
]
},
"allowed_architecture_delta": {
"new_cross_module_dependencies": 0,
"new_canonical_owners": 0,
"new_privileges": 0,
"new_third_party_dependencies": 0,
"new_database_owner_roles": 1
},
"contracts": {
"consume": [
"contracts.identity@v1",
"contracts.world@gen2",
"contracts.epistemics@gen2",
"contracts.interaction@v1"
],
"may_change": [
"Only contracts explicitly within GEN2-024 allowed_change_scope; preserve Gen2 owner boundaries and backward compatibility unless this packet says cutover."
]
},
"semantic_owner": "Identity + World + Epistemics, separate responsibilities. Follow GEN2 target architecture: owner boundaries are authoritative; Memory remains a read/retrieval fabric, World is not truth owner, SELF is not a God orchestrator.",
"canonical_state": [
"Identity authenticates principals; World resolves referents; Epistemics evaluates source reliability",
"No task may create a second canonical owner for an already-owned mutable semantic concept."
],
"state_transitions": [
"current state -> additive/shadow Gen2 path -> evidence comparison -> controlled cutover -> compatibility retention; writer rule: Identity authenticates principals; World resolves referents; Epistemics evaluates source reliability"
],
"side_effects_and_privileges": [
"No external mutation may bypass existing Authority -> Commit -> Executor boundaries.",
"Do not weaken architecture/security/test guardrails to make the task pass."
],
"persistence_and_migrations": [
"Database changes must be additive next-numbered migrations only until an explicitly approved retirement task; never edit historical V1 migrations 001-045.",
"At most one canonical writer is active for each semantic state; backfill/shadow reads do not create a second canonical writer.",
"The positive new_database_owner_roles delta in this packet is a devctl-v1 database-surface compatibility gate; it does not authorize cross-owner SQL/FK/JOIN or an extra owner unless explicitly stated by this task."
],
"failure_retry_restart": [
"Rollback rule: single-owner mode remains possible; new realm metadata additive",
"Retries/restarts must not create duplicate external side effects or a second canonical writer.",
"Durable state required by this task must survive process restart; process-local memory is never the only source of truth."
],
"assumptions": [
"Program milestone: M5; test profile: FAST.",
"Task branch starts from local gen2-integration; base_repo_revision=gen2-integration must resolve to the untouched integration base while the task branch is active.",
"Codex reads DOMOVOY_CONSTITUTION.md, GEN2_TARGET_ARCHITECTURE.md, GEN2_CANONICAL_DATA_MODEL.md, GEN2_MIGRATION_MAP.md, GEN2_MASTER_PLAN.md and GEN2_EXECUTION_CONTRACT.md before non-trivial edits.",
"Do not expand scope silently. If a required change falls outside allowed paths or changes ownership, return a typed gap and request a task revision.",
"Depends on: GEN2-023."
],
"acceptance_scenarios": [
"GEN2-024-SCN-01: PrincipalDataRealm/owner/shared scopes",
"GEN2-024-SCN-02: utterance/source attribution with confidence",
"GEN2-024-SCN-03: World person referents do not equal authenticated Principal automatically",
"GEN2-024-SCN-04: SourceReliabilityAssessment = source × domain × freshness × history",
"GEN2-024-SCN-05: identity ambiguity remains explicit",
"GEN2-024-SCN-06: future speaker-recognition result enters as Observation, not authentication truth",
"GEN2-024-SCN-07: Context Compiler respects realm/scope isolation",
"GEN2-024-EXIT: Домовой может знать семейный контекст, не превращая услышанное имя/голос в полномочия владельца."
],
"required_tests": [
"FAST: go test ./modules/identity/... ./modules/world/... ./modules/epistemics/... ./modules/interaction/... ./adapters/postgres",
"FAST: go vet ./modules/identity/... ./modules/world/... ./modules/epistemics/... ./modules/interaction/... ./adapters/postgres",
"FAST governance: go run ./cmd/devctl preflight -active dev/ACTIVE_TASK.json",
"FAST scope: go run ./cmd/devctl check-diff -active dev/ACTIVE_TASK.json",
"FAST independent: go run ./cmd/devctl/independent",
"FAST whitespace: git diff --check gen2-integration --"
],
"terminal_gap_states": [
"BLOCKED_BY_SPEC_GAP",
"BLOCKED_BY_ARCHITECTURE_GAP",
"BLOCKED_BY_MISSING_CAPABILITY",
"BLOCKED_BY_CONFLICT",
"REQUIRES_MIGRATION_DECISION"
]
}