{ "task_id": "DEV-000093", "task_revision": 1, "architecture_revision": "DEV-000073-baseline", "base_repo_revision": "cf66cd472cb791125347922c9e74ded534c9a3a7", "risk_tier": "E", "intent": "Repair learning-evidence integrity so reflection candidates preserve normalized source evidence, corrections do not degrade unrelated skills, and unknown or skipped outcomes remain distinct from verified failures.", "requirement_ids": ["Reflection references valid experience", "Skill evidence stays capability-specific", "Unknown is not failure"], "allowed_change_scope": { "modules": ["core-runtime", "epistemics", "capability", "development-governance"], "paths": [ "cmd/core-runtime/learning.go", "cmd/core-runtime/learning_test.go", "modules/epistemics/domain/experience.go", "modules/epistemics/domain/experience_test.go", "modules/capability/domain/skill.go", "modules/capability/domain/skill_test.go", "dev/ACTIVE_TASK.json", "dev/tasks/DEV-000093-learning-evidence-integrity.json" ] }, "forbidden_change_scope": {"paths": ["architecture/**", "security/**", "database/**", "deploy/**"]}, "allowed_architecture_delta": {"new_cross_module_dependencies": 0, "new_canonical_owners": 0, "new_privileges": 0, "new_third_party_dependencies": 0, "new_database_owner_roles": 0}, "contracts": {"consume": ["existing epistemics experience/reflection contract", "existing capability skill contract"], "may_change": []}, "semantic_owner": "epistemics", "canonical_state": ["epistemics ExperienceRecord and ReflectionCandidate", "capability SkillProfile"], "state_transitions": ["failure/correction/low-confidence evidence -> reflection candidate requiring cognition", "unknown/skipped skill observation -> retained as non-failure evidence"], "side_effects_and_privileges": ["No external mutation", "No new privilege", "No model/provider invocation"], "persistence_and_migrations": ["No schema migration"], "failure_retry_restart": ["Learning write failure remains non-authoritative and cannot alter external state", "No retry is inferred as a success"], "assumptions": ["A generic user correction is not evidence against the reminder-resolution skill unless it is explicitly linked to that skill"], "acceptance_scenarios": ["Reflection accepts an otherwise valid experience without a caller-supplied ID", "Correction outside reminder flow does not mutate reminder skill", "Unknown and skipped outcomes do not populate known-failure evidence"], "required_tests": ["go test ./cmd/core-runtime", "go test ./modules/epistemics/domain", "go test ./modules/capability/domain", "go test ./...", "go vet ./...", "devctl preflight", "devctl check-diff", "git diff --check"], "terminal_gap_states": ["BLOCKED_BY_ARCHITECTURE_GAP", "BLOCKED_BY_SPEC_GAP", "BLOCKED_BY_CONFLICT"] }