feat(plan-01): Phase 3 — split domain OKR data into apps/okr/domain
Separate per-project domain data from the reusable harness so packages/casan-harness
holds no domain artifacts. Domain data physically relocated to apps/okr/domain, with
compat symlinks at the old paths (Python + app + evidence-log refs keep resolving).
Moved -> apps/okr/domain (+ compat symlink at old path):
golden-runs/ (was .specify/level5/golden-runs)
corpus/{redteam-corpus.jsonl,redteam-vectors.jsonl,benign-corpus/}
(was packages/casan-harness/security/*)
traceability-map.json (was .specify/traceability-map.json)
input/ (was docs/input — OKR requirement/architecture)
casan-paths.sh: add CASAN_DOMAIN_ROOT (apps/okr/domain; env-overridable so Plan-06 can
point a second app at its own domain; falls back to .specify pre-split).
Harness bash refs repointed to $CASAN_DOMAIN_ROOT: run-casan4 (golden), phase3-redteam
(corpus), phase-h4-multilingual/split-inject (benign-corpus), phase10-traceability (map),
benign-fp-report (corpus+vectors). Python + app refs still resolve via the compat
symlinks (repointed in Phase 4 when the symlinks are removed).
Full gate: PASS=64 FAIL=0 SKIP=3 (CASAN_CI_STEP_TIMEOUT_SEC=1200). A first gate run
crawled under host load avg ~30 (Ollama + system); re-run at lower load passed clean.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
d54d7f5f4c
commit
f2ea5590b1
@@ -1,69 +0,0 @@
|
||||
{
|
||||
"FR-01": {
|
||||
"name": "Login",
|
||||
"code": [
|
||||
"backend/src/auth/auth.controller.ts",
|
||||
{ "file": "backend/src/auth/auth.service.ts", "symbols": ["AuthService", "login"] },
|
||||
"frontend/src/pages/Login.tsx",
|
||||
"frontend/src/hooks/useAuth.tsx"
|
||||
],
|
||||
"tests": [
|
||||
"backend/test/services.test.ts",
|
||||
"backend/test/e2e.test.ts"
|
||||
]
|
||||
},
|
||||
"FR-02": {
|
||||
"name": "Create Objective",
|
||||
"code": [
|
||||
"backend/src/objectives/objectives.controller.ts",
|
||||
{ "file": "backend/src/objectives/objectives.service.ts", "symbols": ["ObjectivesService", "create"] },
|
||||
"frontend/src/pages/CreateObjective.tsx",
|
||||
"frontend/src/schemas/objective.schema.ts"
|
||||
],
|
||||
"tests": [
|
||||
"backend/test/services.test.ts",
|
||||
"backend/test/e2e.test.ts",
|
||||
"frontend/src/__tests__/okr.test.tsx"
|
||||
]
|
||||
},
|
||||
"FR-03": {
|
||||
"name": "Create Key Result",
|
||||
"code": [
|
||||
"backend/src/key-results/key-results.controller.ts",
|
||||
{ "file": "backend/src/key-results/key-results.service.ts", "symbols": ["KeyResultsService", "create"] },
|
||||
"backend/src/key-results/dto/create-key-result.dto.ts"
|
||||
],
|
||||
"tests": [
|
||||
"backend/test/services.test.ts",
|
||||
"backend/test/e2e.test.ts"
|
||||
]
|
||||
},
|
||||
"FR-04": {
|
||||
"name": "Update Progress",
|
||||
"code": [
|
||||
"backend/src/key-results/key-results.controller.ts",
|
||||
{ "file": "backend/src/key-results/key-results.service.ts", "symbols": ["updateProgress"] },
|
||||
"backend/src/key-results/dto/update-progress.dto.ts",
|
||||
"frontend/src/pages/KeyResultDetail.tsx"
|
||||
],
|
||||
"tests": [
|
||||
"backend/test/services.test.ts",
|
||||
"backend/test/e2e.test.ts",
|
||||
"frontend/src/__tests__/okr.test.tsx"
|
||||
]
|
||||
},
|
||||
"FR-05": {
|
||||
"name": "Dashboard",
|
||||
"code": [
|
||||
"backend/src/objectives/objectives.controller.ts",
|
||||
{ "file": "backend/src/objectives/objectives.service.ts", "symbols": ["ObjectivesService", "list"] },
|
||||
"frontend/src/pages/Dashboard.tsx",
|
||||
"frontend/src/hooks/useObjectives.ts"
|
||||
],
|
||||
"tests": [
|
||||
"backend/test/services.test.ts",
|
||||
"backend/test/e2e.test.ts",
|
||||
"frontend/src/__tests__/okr.test.tsx"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
../apps/okr/domain/traceability-map.json
|
||||
Reference in New Issue
Block a user