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,257 @@
# CASAN4 demo pipeline context
generated-at: 2026-07-08T03:59:04Z
feature-id: casan-demo
module-id: mod-casan
module-keyword: harness
mode: autonomous
language: Vietnamese
casan-harness:
level-target: 4
h4-security:
audit-log: .specify/logs/audit/security.jsonl
h5-governance:
audit-log: .specify/logs/audit/audit.jsonl
h6-agentops:
metrics-log: .specify/logs/cost/metrics.jsonl
alert-log: .specify/agentops/alerts.log
steps:
step-0:
status: COMPLETE
agent: detect-existing-spec
governance-action: agent_step
casan:
h4-security:
status: PASS
trace: .specify/logs/trace/security-050a90e7-171e-4e6e-be95-7b4d57307f59.json
h5-governance:
decision: approved
trace: .specify/logs/trace/governance-3167a0af-6b41-4065-9d7d-3986b28dd314.json
audit-log: .specify/logs/audit/audit.jsonl
h6-agentops:
status: success
trace: .specify/logs/trace/agentops-236cb598-7a82-413d-8817-dde96e58cfa3.json
metrics-log: .specify/logs/cost/metrics.jsonl
step-1-srs:
status: COMPLETE
agent: okr.srs
governance-action: agent_step
casan:
h4-security:
status: PASS
trace: .specify/logs/trace/security-1675b8d3-1a18-4b80-96a1-de5387826e98.json
h5-governance:
decision: approved
trace: .specify/logs/trace/governance-e96503e4-ed38-41bf-8bd7-0b978c94b61d.json
audit-log: .specify/logs/audit/audit.jsonl
h6-agentops:
status: success
trace: .specify/logs/trace/agentops-4e14ae44-8f88-4e0f-89ab-3e52ad7d0987.json
metrics-log: .specify/logs/cost/metrics.jsonl
step-2-bd:
status: COMPLETE
agent: okr.bd
governance-action: agent_step
casan:
h4-security:
status: PASS
trace: .specify/logs/trace/security-208d6c45-d345-4aa9-9809-153ce0dd4b39.json
h5-governance:
decision: approved
trace: .specify/logs/trace/governance-3167a0af-6b41-4065-9d7d-3986b28dd314.json
audit-log: .specify/logs/audit/audit.jsonl
h6-agentops:
status: success
trace: .specify/logs/trace/agentops-56f10f14-3611-4c2a-9f0c-3446efd68fb6.json
metrics-log: .specify/logs/cost/metrics.jsonl
step-3-spec:
status: COMPLETE
agent: speckit.specify
governance-action: agent_step
casan:
h4-security:
status: PASS
trace: .specify/logs/trace/security-4718a8db-287e-41f5-9f25-38a13bc41479.json
h5-governance:
decision: approved
trace: .specify/logs/trace/governance-e96503e4-ed38-41bf-8bd7-0b978c94b61d.json
audit-log: .specify/logs/audit/audit.jsonl
h6-agentops:
status: success
trace: .specify/logs/trace/agentops-60d41362-070f-4c20-8cd8-9b3f424aea06.json
metrics-log: .specify/logs/cost/metrics.jsonl
step-4-clarify:
status: COMPLETE
agent: speckit.clarify
governance-action: agent_step
casan:
h4-security:
status: PASS
trace: .specify/logs/trace/security-4c461303-c6c8-45b3-b671-677330a68c2e.json
h5-governance:
decision: approved
trace: .specify/logs/trace/governance-3167a0af-6b41-4065-9d7d-3986b28dd314.json
audit-log: .specify/logs/audit/audit.jsonl
h6-agentops:
status: success
trace: .specify/logs/trace/agentops-63f9c421-6cad-437e-99a1-75dbc7ccb365.json
metrics-log: .specify/logs/cost/metrics.jsonl
step-5-review-spec:
status: COMPLETE
agent: okr.reviewspec
governance-action: agent_step
casan:
h4-security:
status: PASS
trace: .specify/logs/trace/security-60a5da0e-bf46-4b50-972f-0e957ae0cca8.json
h5-governance:
decision: approved
trace: .specify/logs/trace/governance-e96503e4-ed38-41bf-8bd7-0b978c94b61d.json
audit-log: .specify/logs/audit/audit.jsonl
h6-agentops:
status: success
trace: .specify/logs/trace/agentops-69c773cb-4c43-4d8f-b933-65e692a59509.json
metrics-log: .specify/logs/cost/metrics.jsonl
step-6-plan:
status: COMPLETE
agent: speckit.plan
governance-action: agent_step
casan:
h4-security:
status: PASS
trace: .specify/logs/trace/security-6fbb31d6-e86b-4da5-a98d-20ac37ce5b8d.json
h5-governance:
decision: approved
trace: .specify/logs/trace/governance-3167a0af-6b41-4065-9d7d-3986b28dd314.json
audit-log: .specify/logs/audit/audit.jsonl
h6-agentops:
status: success
trace: .specify/logs/trace/agentops-70219708-1c20-45a5-964e-107a3bcbb4ea.json
metrics-log: .specify/logs/cost/metrics.jsonl
step-7-review-plan:
status: COMPLETE
agent: okr.reviewplan
governance-action: agent_step
casan:
h4-security:
status: PASS
trace: .specify/logs/trace/security-8c6b5fd0-bf65-4d1b-9d5e-53dbab3e584e.json
h5-governance:
decision: approved
trace: .specify/logs/trace/governance-e96503e4-ed38-41bf-8bd7-0b978c94b61d.json
audit-log: .specify/logs/audit/audit.jsonl
h6-agentops:
status: success
trace: .specify/logs/trace/agentops-790ad863-fef7-418e-9716-ea0ab1c2e5c1.json
metrics-log: .specify/logs/cost/metrics.jsonl
step-8-dd:
status: COMPLETE
agent: okr.dd
governance-action: agent_step
casan:
h4-security:
status: PASS
trace: .specify/logs/trace/security-91350997-1c44-41a2-b45d-be2aa0781fac.json
h5-governance:
decision: approved
trace: .specify/logs/trace/governance-3167a0af-6b41-4065-9d7d-3986b28dd314.json
audit-log: .specify/logs/audit/audit.jsonl
h6-agentops:
status: success
trace: .specify/logs/trace/agentops-812b0adb-8253-4a79-ac4c-0b181f7ded41.json
metrics-log: .specify/logs/cost/metrics.jsonl
step-8b-testcases:
status: COMPLETE
agent: okr.testkit.gen-testcases
governance-action: agent_step
casan:
h4-security:
status: PASS
trace: .specify/logs/trace/security-96d53ce1-4fcd-4b12-904d-47d50964f6dd.json
h5-governance:
decision: approved
trace: .specify/logs/trace/governance-e96503e4-ed38-41bf-8bd7-0b978c94b61d.json
audit-log: .specify/logs/audit/audit.jsonl
h6-agentops:
status: success
trace: .specify/logs/trace/agentops-920b098f-141c-46ab-af4f-4d6238f721b7.json
metrics-log: .specify/logs/cost/metrics.jsonl
step-9-tasks:
status: COMPLETE
agent: speckit.tasks
governance-action: agent_step
casan:
h4-security:
status: PASS
trace: .specify/logs/trace/security-a2d2e9c2-1520-42ce-8a0e-e688321187b0.json
h5-governance:
decision: approved
trace: .specify/logs/trace/governance-3167a0af-6b41-4065-9d7d-3986b28dd314.json
audit-log: .specify/logs/audit/audit.jsonl
h6-agentops:
status: success
trace: .specify/logs/trace/agentops-92cab24c-4988-4996-bc2f-74ae9b1684cf.json
metrics-log: .specify/logs/cost/metrics.jsonl
step-10-implement:
status: COMPLETE
agent: speckit.implement
governance-action: write_code
casan:
h4-security:
status: PASS
trace: .specify/logs/trace/security-a80eb268-c435-4317-a1df-b81b1a20d802.json
h5-governance:
decision: approved
trace: .specify/logs/trace/governance-d6ae2a95-73b3-4e61-8c81-8d53f2504420.json
audit-log: .specify/logs/audit/audit.jsonl
h6-agentops:
status: success
trace: .specify/logs/trace/agentops-d8830885-68eb-4512-bb6d-f41ccb7294db.json
metrics-log: .specify/logs/cost/metrics.jsonl
step-11-review-code:
status: COMPLETE
agent: okr.reviewcode
governance-action: agent_step
casan:
h4-security:
status: PASS
trace: .specify/logs/trace/security-b9f773dd-be30-430b-b49b-9f61f105949f.json
h5-governance:
decision: approved
trace: .specify/logs/trace/governance-e96503e4-ed38-41bf-8bd7-0b978c94b61d.json
audit-log: .specify/logs/audit/audit.jsonl
h6-agentops:
status: success
trace: .specify/logs/trace/agentops-ddae00a1-7960-4a99-8741-de089b93e283.json
metrics-log: .specify/logs/cost/metrics.jsonl
step-12-testkit:
status: COMPLETE
agent: okr.testkit.run-tests
governance-action: agent_step
casan:
h4-security:
status: PASS
trace: .specify/logs/trace/security-c3e747d5-4ab6-46fe-ad91-0bbc6f91f311.json
h5-governance:
decision: approved
trace: .specify/logs/trace/governance-3167a0af-6b41-4065-9d7d-3986b28dd314.json
audit-log: .specify/logs/audit/audit.jsonl
h6-agentops:
status: success
trace: .specify/logs/trace/agentops-e75e1165-3a92-4b54-9473-eff24e8a8b60.json
metrics-log: .specify/logs/cost/metrics.jsonl
step-13-launch:
status: COMPLETE
agent: boss.launch
governance-action: deploy
casan:
h4-security:
status: PASS
trace: .specify/logs/trace/security-e40c5166-f228-4064-a44f-245531c26405.json
h5-governance:
decision: approved
trace: .specify/logs/trace/governance-d6ae2a95-73b3-4e61-8c81-8d53f2504420.json
audit-log: .specify/logs/audit/audit.jsonl
h6-agentops:
status: success
trace: .specify/logs/trace/agentops-f25ea973-62bb-41ad-8db2-f5c0f6df239c.json
metrics-log: .specify/logs/cost/metrics.jsonl