refactor(structure): promote app to repo root + remove redundant workspace cruft

Standard production layout: the OKR app (was nested under AINative_OKR_CASAN5/) is now
the repository root. No more wrapper directory.

- Promote AINative_OKR_CASAN5/* -> repo root (backend/ frontend/ packages/ apps/
  .specify/ docs/ infra/ nginx/ scripts/ + configs). Merge tool dirs: .gitea (kept the
  active deploy ci.yml, added harness-ci.yml + runbooks), .claude (agents/commands +
  launch.json), .github moved up.
- Remove redundant: 00_SUBMISSION_PACKAGE, scattered root notes (FPT_CASAN_Full.md,
  tu-tuong-casan.md, casan-tu-sinh..., casan_harness_assessment.md, source-review...,
  README_CASAN5_REFINED.md), casan-next-plans/ and optimize-docs/ (competition/planning
  artifacts — roadmap + design history preserved in git log / commit messages).
- Update all references to the old layout:
  - .gitea/workflows/{ci,harness-ci}.yml, .github/workflows/{ci,deploy}.yml:
    working-directory .; drop AINative_OKR_CASAN5/ prefix; .specify/{tests,scripts}
    -> packages/casan-harness/... (.specify/logs state kept)
  - .claude/launch.json, .gitea/*-runbook.md: path prefixes
  - CLAUDE.md, README.md: docs/input -> apps/okr/domain/input
  - policy-bundle.yaml: 8 policy paths -> packages/casan-harness/...; manifest re-signed
- secrets-scan.sh: fixture excludes -> new package/domain paths.

Full gate from the new root: PASS=64 FAIL=0 SKIP=3.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
thanhnv
2026-07-08 13:26:36 +09:00
co-authored by Claude Opus 4.8
parent 7101af9fd4
commit 36a4812ef3
925 changed files with 410 additions and 18001 deletions
@@ -0,0 +1,5 @@
feature 001-okr-web-app
step 01-srs
agent okr.srs
attempt 1
source docs/input/okr-requirement.md
@@ -0,0 +1,14 @@
# STEP 1: SRS Generation Report
Generated docs/output/ipa-docs/srs/srs-mod01-okr-management.md from docs/input/okr-requirement.md.
Generated by 01-srs attempt 1 for 001-okr-web-app.
<!-- STEP-RESULT
status: COMPLETE
verdict: APPROVED
artifacts:
- docs/output/ipa-docs/srs/srs-mod01-okr-management.md
critical-issues:
- none
/STEP-RESULT -->
@@ -0,0 +1,5 @@
feature 001-okr-web-app
step 02-bd
agent okr.bd
attempt 1
source docs/input/okr-requirement.md
@@ -0,0 +1,14 @@
# STEP 2: Business Design Report
Generated docs/output/ipa-docs/bd/bd-mod01-okr-management.md.
Generated by 02-bd attempt 1 for 001-okr-web-app.
<!-- STEP-RESULT
status: COMPLETE
verdict: APPROVED
artifacts:
- docs/output/ipa-docs/bd/bd-mod01-okr-management.md
critical-issues:
- none
/STEP-RESULT -->
@@ -0,0 +1,5 @@
feature 001-okr-web-app
step 03-spec
agent speckit.specify
attempt 1
source docs/input/okr-requirement.md
@@ -0,0 +1,14 @@
# STEP 3: Specify Report
Generated docs/output/specs/001-okr-web-app/spec.md.
Generated by 03-spec attempt 1 for 001-okr-web-app.
<!-- STEP-RESULT
status: COMPLETE
verdict: APPROVED
artifacts:
- docs/output/specs/001-okr-web-app/spec.md
critical-issues:
- none
/STEP-RESULT -->
@@ -0,0 +1,5 @@
feature 001-okr-web-app
step 04-reviewspec
agent okr.reviewspec
attempt 1
source docs/input/okr-requirement.md
@@ -0,0 +1,14 @@
## Spec Conformance Review Report
Criteria checked: FR coverage, role filtering, validation, golden regression. Missing: none. model-judge: REJECTED (tokens=420).
Generated by 04-reviewspec attempt 1 for 001-okr-web-app.
<!-- STEP-RESULT
status: COMPLETE
verdict: REJECTED
artifacts:
- docs/output/specs/001-okr-web-app/spec.md
critical-issues:
- none
/STEP-RESULT -->
@@ -0,0 +1,5 @@
feature 001-okr-web-app
step 05-plan-attempt-1
agent speckit.plan
attempt 1
source docs/input/okr-requirement.md
@@ -0,0 +1,14 @@
# STEP 5: Plan Report Attempt 1
Generated docs/output/specs/001-okr-web-app/plan.md.
Generated by 05-plan attempt 1 for 001-okr-web-app.
<!-- STEP-RESULT
status: COMPLETE
verdict: APPROVED
artifacts:
- docs/output/specs/001-okr-web-app/plan.md
critical-issues:
- none
/STEP-RESULT -->
@@ -0,0 +1,5 @@
feature 001-okr-web-app
step 06-reviewplan-attempt-1
agent okr.reviewplan
attempt 1
source docs/input/okr-requirement.md
@@ -0,0 +1,19 @@
## Plan Conformance Review Report — Attempt 1
Criteria checked against plan.md and required companion artifacts. model-judge: SKIP (rule_already_rejected). Verdict is REJECTED.
Generated by 06-reviewplan attempt 1 for 001-okr-web-app.
<!-- STEP-RESULT
status: COMPLETE
verdict: REJECTED
artifacts:
- docs/output/specs/001-okr-web-app/plan.md
- docs/output/specs/001-okr-web-app/data-model.md
- docs/output/specs/001-okr-web-app/research.md
- docs/output/specs/001-okr-web-app/quickstart.md
- docs/output/specs/001-okr-web-app/contracts/openapi.md
critical-issues:
- missing plan criterion: Golden regression test
- missing plan criterion: Rollback strategy
/STEP-RESULT -->
@@ -0,0 +1,5 @@
feature 001-okr-web-app
step 07-plan-attempt-2
agent speckit.plan
attempt 2
source docs/input/okr-requirement.md
@@ -0,0 +1,14 @@
# STEP 5: Plan Report Attempt 2
Generated docs/output/specs/001-okr-web-app/plan.md.
Generated by 05-plan attempt 2 for 001-okr-web-app.
<!-- STEP-RESULT
status: COMPLETE
verdict: APPROVED
artifacts:
- docs/output/specs/001-okr-web-app/plan.md
critical-issues:
- none
/STEP-RESULT -->
@@ -0,0 +1,5 @@
feature 001-okr-web-app
step 08-reviewplan-attempt-2
agent okr.reviewplan
attempt 2
source docs/input/okr-requirement.md
@@ -0,0 +1,18 @@
## Plan Conformance Review Report — Attempt 2
Criteria checked against plan.md and required companion artifacts. model-judge: REJECTED (tokens=373). Verdict is REJECTED. Rollback executed: plan restored to pre-overwrite state (tx=56b6f5f6-a343-4958-a557-167ef20fd392).
Generated by 06-reviewplan attempt 2 for 001-okr-web-app.
<!-- STEP-RESULT
status: COMPLETE
verdict: REJECTED
artifacts:
- docs/output/specs/001-okr-web-app/plan.md
- docs/output/specs/001-okr-web-app/data-model.md
- docs/output/specs/001-okr-web-app/research.md
- docs/output/specs/001-okr-web-app/quickstart.md
- docs/output/specs/001-okr-web-app/contracts/openapi.md
critical-issues:
- none
/STEP-RESULT -->
@@ -0,0 +1,5 @@
feature 001-okr-web-app
step 09-dd
agent okr.dd
attempt 1
source docs/input/okr-requirement.md
@@ -0,0 +1,14 @@
# STEP 7: Detail Design Report
Generated docs/output/ipa-docs/dd/dd-mod01-okr-management.md.
Generated by 07-dd attempt 1 for 001-okr-web-app.
<!-- STEP-RESULT
status: COMPLETE
verdict: APPROVED
artifacts:
- docs/output/ipa-docs/dd/dd-mod01-okr-management.md
critical-issues:
- none
/STEP-RESULT -->
@@ -0,0 +1,5 @@
feature 001-okr-web-app
step 10-testkit
agent okr.testkit
attempt 1
source docs/input/okr-requirement.md
@@ -0,0 +1,14 @@
# STEP 8: Testkit Report
Generated docs/output/ipa-docs/testcase/testcase-mod01-okr-management.md.
Generated by 08-testkit attempt 1 for 001-okr-web-app.
<!-- STEP-RESULT
status: COMPLETE
verdict: APPROVED
artifacts:
- docs/output/ipa-docs/testcase/testcase-mod01-okr-management.md
critical-issues:
- none
/STEP-RESULT -->
@@ -0,0 +1,5 @@
feature 001-okr-web-app
step 11-tasks
agent speckit.tasks
attempt 1
source docs/input/okr-requirement.md
@@ -0,0 +1,14 @@
# STEP 9: Tasks Report
Generated docs/output/specs/001-okr-web-app/tasks.md.
Generated by 09-tasks attempt 1 for 001-okr-web-app.
<!-- STEP-RESULT
status: COMPLETE
verdict: APPROVED
artifacts:
- docs/output/specs/001-okr-web-app/tasks.md
critical-issues:
- none
/STEP-RESULT -->
@@ -0,0 +1,5 @@
feature 001-okr-web-app
step 12-reviewcode
agent okr.reviewcode
attempt 1
source docs/input/okr-requirement.md
@@ -0,0 +1,20 @@
# STEP 10: Code Review Report
Reviewed 5 backend/test files. DB data usage verification: Prisma Client used, frontend API client used, seed data exists, no static endpoint data found. model-judge: SKIP (rule_already_rejected).
Generated by 10-reviewcode attempt 1 for 001-okr-web-app.
<!-- STEP-RESULT
status: COMPLETE
verdict: REJECTED
artifacts:
- backend/src/auth/auth.service.ts
- backend/src/objectives/objectives.service.ts
- backend/src/key-results/key-results.service.ts
- backend/test/e2e.test.ts
- backend/test/services.test.ts
- frontend/src/lib/api.ts
- backend/prisma/seed.ts
critical-issues:
- golden test not found
/STEP-RESULT -->
@@ -0,0 +1,7 @@
Generate a safe OKR plan for employee ***MASKED_EMAIL***.
Expected sections:
- Objective
- Key Results
- Security gate
- Governance decision
- AgentOps metrics
@@ -0,0 +1,5 @@
feature 001-okr-web-app
step STEP1
agent okr.srs
attempt 1
mode dry-run stub
@@ -0,0 +1,3 @@
# STEP1 dry-run stub artifact
verdict: APPROVED
@@ -0,0 +1 @@
{"action":"agent_step_dry-STEP1-attempt-1","cache":"stored","phases":[{"phase":"H4-in","rc":0},{"phase":"H5","rc":0},{"phase":"H6-exec","rc":0},{"phase":"H4-out","rc":0}]}
@@ -0,0 +1,5 @@
feature 001-okr-web-app
step STEP10
agent speckit.implement
attempt 1
mode dry-run stub
@@ -0,0 +1,3 @@
# STEP10 dry-run stub artifact
verdict: APPROVED
@@ -0,0 +1 @@
{"action":"agent_step_dry-STEP10-attempt-1","cache":"stored","phases":[{"phase":"H4-in","rc":0},{"phase":"H5","rc":0},{"phase":"H6-exec","rc":0},{"phase":"H4-out","rc":0}]}
@@ -0,0 +1,5 @@
feature 001-okr-web-app
step STEP11
agent okr.reviewcode
attempt 1
mode dry-run stub
@@ -0,0 +1,3 @@
# STEP11 dry-run stub artifact
verdict: APPROVED
@@ -0,0 +1 @@
{"action":"agent_step_dry-STEP11-attempt-1","cache":"stored","phases":[{"phase":"H4-in","rc":0},{"phase":"H5","rc":0},{"phase":"H6-exec","rc":0},{"phase":"H4-out","rc":0}]}
@@ -0,0 +1,5 @@
feature 001-okr-web-app
step STEP12
agent okr.testkit run-tests
attempt 1
mode dry-run stub
@@ -0,0 +1,3 @@
# STEP12 dry-run stub artifact
verdict: FAIL
@@ -0,0 +1 @@
{"action":"agent_step_dry-STEP12-attempt-1","cache":"stored","phases":[{"phase":"H4-in","rc":0},{"phase":"H5","rc":0},{"phase":"H6-exec","rc":0},{"phase":"H4-out","rc":0}]}
@@ -0,0 +1,5 @@
feature 001-okr-web-app
step STEP12
agent okr.testkit run-tests
attempt 2
mode dry-run stub
@@ -0,0 +1,3 @@
# STEP12 dry-run stub artifact
verdict: PASS
@@ -0,0 +1 @@
{"action":"agent_step_dry-STEP12-attempt-2","cache":"stored","phases":[{"phase":"H4-in","rc":0},{"phase":"H5","rc":0},{"phase":"H6-exec","rc":0},{"phase":"H4-out","rc":0}]}
@@ -0,0 +1,5 @@
feature 001-okr-web-app
step STEP13
agent deploy
attempt 1
mode dry-run stub
@@ -0,0 +1,3 @@
# STEP13 dry-run stub artifact
verdict: APPROVED
@@ -0,0 +1 @@
{"action":"agent_step_dry-STEP13-attempt-1","cache":"stored","phases":[{"phase":"H4-in","rc":0},{"phase":"H5","rc":0},{"phase":"H6-exec","rc":0},{"phase":"H4-out","rc":0}]}
@@ -0,0 +1,5 @@
feature 001-okr-web-app
step STEP2
agent okr.bd
attempt 1
mode dry-run stub
@@ -0,0 +1,3 @@
# STEP2 dry-run stub artifact
verdict: APPROVED
@@ -0,0 +1 @@
{"action":"agent_step_dry-STEP2-attempt-1","cache":"stored","phases":[{"phase":"H4-in","rc":0},{"phase":"H5","rc":0},{"phase":"H6-exec","rc":0},{"phase":"H4-out","rc":0}]}
@@ -0,0 +1,5 @@
feature 001-okr-web-app
step STEP3
agent speckit.specify
attempt 1
mode dry-run stub
@@ -0,0 +1,3 @@
# STEP3 dry-run stub artifact
verdict: APPROVED
@@ -0,0 +1 @@
{"action":"agent_step_dry-STEP3-attempt-1","cache":"stored","phases":[{"phase":"H4-in","rc":0},{"phase":"H5","rc":0},{"phase":"H6-exec","rc":0},{"phase":"H4-out","rc":0}]}
@@ -0,0 +1,5 @@
feature 001-okr-web-app
step STEP4
agent speckit.clarify
attempt 1
mode dry-run stub
@@ -0,0 +1,3 @@
# STEP4 dry-run stub artifact
verdict: APPROVED
@@ -0,0 +1 @@
{"action":"agent_step_dry-STEP4-attempt-1","cache":"stored","phases":[{"phase":"H4-in","rc":0},{"phase":"H5","rc":0},{"phase":"H6-exec","rc":0},{"phase":"H4-out","rc":0}]}
@@ -0,0 +1,5 @@
feature 001-okr-web-app
step STEP5
agent okr.reviewspec
attempt 1
mode dry-run stub
@@ -0,0 +1,3 @@
# STEP5 dry-run stub artifact
verdict: APPROVED
@@ -0,0 +1 @@
{"action":"agent_step_dry-STEP5-attempt-1","cache":"stored","phases":[{"phase":"H4-in","rc":0},{"phase":"H5","rc":0},{"phase":"H6-exec","rc":0},{"phase":"H4-out","rc":0}]}
@@ -0,0 +1,5 @@
feature 001-okr-web-app
step STEP6
agent speckit.plan
attempt 1
mode dry-run stub
@@ -0,0 +1,3 @@
# STEP6 dry-run stub artifact
verdict: APPROVED
@@ -0,0 +1 @@
{"action":"agent_step_dry-STEP6-attempt-1","cache":"stored","phases":[{"phase":"H4-in","rc":0},{"phase":"H5","rc":0},{"phase":"H6-exec","rc":0},{"phase":"H4-out","rc":0}]}
@@ -0,0 +1,5 @@
feature 001-okr-web-app
step STEP6
agent speckit.plan
attempt 2
mode dry-run stub
@@ -0,0 +1,3 @@
# STEP6 dry-run stub artifact
verdict: APPROVED
@@ -0,0 +1 @@
{"action":"agent_step_dry-STEP6-attempt-2","cache":"stored","phases":[{"phase":"H4-in","rc":0},{"phase":"H5","rc":0},{"phase":"H6-exec","rc":0},{"phase":"H4-out","rc":0}]}
@@ -0,0 +1,5 @@
feature 001-okr-web-app
step STEP6
agent speckit.plan
attempt 3
mode dry-run stub
@@ -0,0 +1,3 @@
# STEP6 dry-run stub artifact
verdict: APPROVED
@@ -0,0 +1 @@
{"action":"agent_step_dry-STEP6-attempt-3","cache":"stored","phases":[{"phase":"H4-in","rc":0},{"phase":"H5","rc":0},{"phase":"H6-exec","rc":0},{"phase":"H4-out","rc":0}]}
@@ -0,0 +1,5 @@
feature 001-okr-web-app
step STEP7
agent okr.reviewplan
attempt 1
mode dry-run stub
@@ -0,0 +1,3 @@
# STEP7 dry-run stub artifact
verdict: REJECTED
@@ -0,0 +1 @@
{"action":"agent_step_dry-STEP7-attempt-1","cache":"stored","phases":[{"phase":"H4-in","rc":0},{"phase":"H5","rc":0},{"phase":"H6-exec","rc":0},{"phase":"H4-out","rc":0}]}
@@ -0,0 +1,5 @@
feature 001-okr-web-app
step STEP7
agent okr.reviewplan
attempt 2
mode dry-run stub
@@ -0,0 +1,3 @@
# STEP7 dry-run stub artifact
verdict: APPROVED
@@ -0,0 +1 @@
{"action":"agent_step_dry-STEP7-attempt-2","cache":"stored","phases":[{"phase":"H4-in","rc":0},{"phase":"H5","rc":0},{"phase":"H6-exec","rc":0},{"phase":"H4-out","rc":0}]}
@@ -0,0 +1,5 @@
feature 001-okr-web-app
step STEP8
agent okr.dd
attempt 1
mode dry-run stub
@@ -0,0 +1,3 @@
# STEP8 dry-run stub artifact
verdict: APPROVED
@@ -0,0 +1 @@
{"action":"agent_step_dry-STEP8-attempt-1","cache":"stored","phases":[{"phase":"H4-in","rc":0},{"phase":"H5","rc":0},{"phase":"H6-exec","rc":0},{"phase":"H4-out","rc":0}]}
@@ -0,0 +1,5 @@
feature 001-okr-web-app
step STEP8b
agent okr.testkit
attempt 1
mode dry-run stub
@@ -0,0 +1,3 @@
# STEP8b dry-run stub artifact
verdict: APPROVED
@@ -0,0 +1 @@
{"action":"agent_step_dry-STEP8b-attempt-1","cache":"stored","phases":[{"phase":"H4-in","rc":0},{"phase":"H5","rc":0},{"phase":"H6-exec","rc":0},{"phase":"H4-out","rc":0}]}
@@ -0,0 +1,5 @@
feature 001-okr-web-app
step STEP9
agent speckit.tasks
attempt 1
mode dry-run stub
@@ -0,0 +1,3 @@
# STEP9 dry-run stub artifact
verdict: APPROVED
@@ -0,0 +1 @@
{"action":"agent_step_dry-STEP9-attempt-1","cache":"stored","phases":[{"phase":"H4-in","rc":0},{"phase":"H5","rc":0},{"phase":"H6-exec","rc":0},{"phase":"H4-out","rc":0}]}
@@ -0,0 +1,7 @@
Generate a safe OKR plan for employee ***MASKED_EMAIL***.
Expected sections:
- Objective
- Key Results
- Security gate
- Governance decision
- AgentOps metrics