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,38 @@
# Boss Log 001-okr-web-app
- 2026-07-03T00:57:26.325Z START dry-STEP1-attempt-1 okr.srs attempt 1 (dry-run stub)
- 2026-07-03T00:57:28.062Z END dry-STEP1-attempt-1 verdict APPROVED trace c0e29b20-887b-491f-9aca-8c512badf937
- 2026-07-03T00:57:28.063Z START dry-STEP2-attempt-1 okr.bd attempt 1 (dry-run stub)
- 2026-07-03T00:57:29.693Z END dry-STEP2-attempt-1 verdict APPROVED trace 19bc0b84-31d9-4c4f-a5fc-d655f43251de
- 2026-07-03T00:57:29.693Z START dry-STEP3-attempt-1 speckit.specify attempt 1 (dry-run stub)
- 2026-07-03T00:57:31.283Z END dry-STEP3-attempt-1 verdict APPROVED trace e5adaec8-f256-4708-bffa-29f34c59f4b4
- 2026-07-03T00:57:31.283Z START dry-STEP4-attempt-1 speckit.clarify attempt 1 (dry-run stub)
- 2026-07-03T00:57:32.948Z END dry-STEP4-attempt-1 verdict APPROVED trace 3a3f7ea9-c13c-4f16-9837-551f322f93d1
- 2026-07-03T00:57:32.949Z START dry-STEP5-attempt-1 okr.reviewspec attempt 1 (dry-run stub)
- 2026-07-03T00:57:34.552Z END dry-STEP5-attempt-1 verdict APPROVED trace d850181b-8d2b-4c61-8cb4-631add10d84f
- 2026-07-03T00:57:34.553Z START dry-STEP6-attempt-1 speckit.plan attempt 1 (dry-run stub)
- 2026-07-03T00:57:36.144Z END dry-STEP6-attempt-1 verdict APPROVED trace 6ad94ddf-28e7-4ea2-ab41-e4d94c7c9285
- 2026-07-03T00:57:36.144Z START dry-STEP7-attempt-1 okr.reviewplan attempt 1 (dry-run stub)
- 2026-07-03T00:57:37.766Z END dry-STEP7-attempt-1 verdict REJECTED trace 725acaf1-c3ad-4039-858b-b02dbfbe6d50
- 2026-07-03T00:57:37.767Z START dry-STEP6-attempt-2 speckit.plan attempt 2 (dry-run stub)
- 2026-07-03T00:57:39.353Z END dry-STEP6-attempt-2 verdict APPROVED trace 2fc20286-0d64-4245-8a16-c3c4c475deae
- 2026-07-03T00:57:39.354Z START dry-STEP7-attempt-2 okr.reviewplan attempt 2 (dry-run stub)
- 2026-07-03T00:57:40.928Z END dry-STEP7-attempt-2 verdict APPROVED trace 8db4a714-5f7d-4a3d-8ba8-994b86248704
- 2026-07-03T00:57:40.929Z START dry-STEP8-attempt-1 okr.dd attempt 1 (dry-run stub)
- 2026-07-03T00:57:42.544Z END dry-STEP8-attempt-1 verdict APPROVED trace d5a0b848-a7a1-425e-bb6c-8051ee09f180
- 2026-07-03T00:57:42.544Z START dry-STEP8b-attempt-1 okr.testkit attempt 1 (dry-run stub)
- 2026-07-03T00:57:44.120Z END dry-STEP8b-attempt-1 verdict APPROVED trace 88e01a1e-963e-42cd-88f2-9819c0d04078
- 2026-07-03T00:57:44.120Z START dry-STEP9-attempt-1 speckit.tasks attempt 1 (dry-run stub)
- 2026-07-03T00:57:45.735Z END dry-STEP9-attempt-1 verdict APPROVED trace 0e7dc111-b2dc-4679-9296-e277ae437257
- 2026-07-03T00:57:45.735Z START dry-STEP10-attempt-1 speckit.implement attempt 1 (dry-run stub)
- 2026-07-03T00:57:47.352Z END dry-STEP10-attempt-1 verdict APPROVED trace 8e9a7a94-6cc1-402a-a43c-155b1c4ef1e0
- 2026-07-03T00:57:47.352Z START dry-STEP11-attempt-1 okr.reviewcode attempt 1 (dry-run stub)
- 2026-07-03T00:57:48.971Z END dry-STEP11-attempt-1 verdict APPROVED trace 7fd41242-1271-4dfe-b744-2b0f7d2bc2e3
- 2026-07-03T00:57:48.971Z START dry-STEP12-attempt-1 okr.testkit run-tests attempt 1 (dry-run stub)
- 2026-07-03T00:57:50.619Z END dry-STEP12-attempt-1 verdict FAIL trace 4b919251-4cdd-4d6b-a074-b9e821b4183c
- 2026-07-03T00:57:50.620Z START dry-STEP6-attempt-3 speckit.plan attempt 3 (dry-run stub)
- 2026-07-03T00:57:52.232Z END dry-STEP6-attempt-3 verdict APPROVED trace 5662b4f4-f19f-4c41-9a3c-61694741784d
- 2026-07-03T00:57:52.233Z START dry-STEP12-attempt-2 okr.testkit run-tests attempt 2 (dry-run stub)
- 2026-07-03T00:57:53.845Z END dry-STEP12-attempt-2 verdict PASS trace 51695317-2224-45dc-9fcf-1bb7f85d0d05
- 2026-07-03T00:57:53.846Z START dry-STEP13-attempt-1 deploy attempt 1 (dry-run stub)
- 2026-07-03T00:57:55.467Z END dry-STEP13-attempt-1 verdict APPROVED trace b247f82b-e8aa-4eab-8919-45e3da8b961a