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>
132 lines
5.8 KiB
YAML
132 lines
5.8 KiB
YAML
feature-id: 001-okr-web-app
|
|
module-id: MOD-01
|
|
module-keyword: okr-management
|
|
tech-stack: NestJS + Prisma + SQLite + React + Vite + Tailwind
|
|
steps:
|
|
- id: dry-STEP1-attempt-1
|
|
agent: okr.srs
|
|
artifact: docs/output/output_logs/001-okr-web-app/casan/dry-STEP1-attempt-1-output.md
|
|
verdict: APPROVED
|
|
trace_id: c0e29b20-887b-491f-9aca-8c512badf937
|
|
trace_file: .specify/logs/trace/agentops-c0e29b20-887b-491f-9aca-8c512badf937.json
|
|
status: success
|
|
- id: dry-STEP2-attempt-1
|
|
agent: okr.bd
|
|
artifact: docs/output/output_logs/001-okr-web-app/casan/dry-STEP2-attempt-1-output.md
|
|
verdict: APPROVED
|
|
trace_id: 19bc0b84-31d9-4c4f-a5fc-d655f43251de
|
|
trace_file: .specify/logs/trace/agentops-19bc0b84-31d9-4c4f-a5fc-d655f43251de.json
|
|
status: success
|
|
- id: dry-STEP3-attempt-1
|
|
agent: speckit.specify
|
|
artifact: docs/output/output_logs/001-okr-web-app/casan/dry-STEP3-attempt-1-output.md
|
|
verdict: APPROVED
|
|
trace_id: e5adaec8-f256-4708-bffa-29f34c59f4b4
|
|
trace_file: .specify/logs/trace/agentops-e5adaec8-f256-4708-bffa-29f34c59f4b4.json
|
|
status: success
|
|
- id: dry-STEP4-attempt-1
|
|
agent: speckit.clarify
|
|
artifact: docs/output/output_logs/001-okr-web-app/casan/dry-STEP4-attempt-1-output.md
|
|
verdict: APPROVED
|
|
trace_id: 3a3f7ea9-c13c-4f16-9837-551f322f93d1
|
|
trace_file: .specify/logs/trace/agentops-3a3f7ea9-c13c-4f16-9837-551f322f93d1.json
|
|
status: success
|
|
- id: dry-STEP5-attempt-1
|
|
agent: okr.reviewspec
|
|
artifact: docs/output/output_logs/001-okr-web-app/casan/dry-STEP5-attempt-1-output.md
|
|
verdict: APPROVED
|
|
trace_id: d850181b-8d2b-4c61-8cb4-631add10d84f
|
|
trace_file: .specify/logs/trace/agentops-d850181b-8d2b-4c61-8cb4-631add10d84f.json
|
|
status: success
|
|
- id: dry-STEP6-attempt-1
|
|
agent: speckit.plan
|
|
artifact: docs/output/output_logs/001-okr-web-app/casan/dry-STEP6-attempt-1-output.md
|
|
verdict: APPROVED
|
|
trace_id: 6ad94ddf-28e7-4ea2-ab41-e4d94c7c9285
|
|
trace_file: .specify/logs/trace/agentops-6ad94ddf-28e7-4ea2-ab41-e4d94c7c9285.json
|
|
status: success
|
|
- id: dry-STEP7-attempt-1
|
|
agent: okr.reviewplan
|
|
artifact: docs/output/output_logs/001-okr-web-app/casan/dry-STEP7-attempt-1-output.md
|
|
verdict: REJECTED
|
|
trace_id: 725acaf1-c3ad-4039-858b-b02dbfbe6d50
|
|
trace_file: .specify/logs/trace/agentops-725acaf1-c3ad-4039-858b-b02dbfbe6d50.json
|
|
status: success
|
|
- id: dry-STEP6-attempt-2
|
|
agent: speckit.plan
|
|
artifact: docs/output/output_logs/001-okr-web-app/casan/dry-STEP6-attempt-2-output.md
|
|
verdict: APPROVED
|
|
trace_id: 2fc20286-0d64-4245-8a16-c3c4c475deae
|
|
trace_file: .specify/logs/trace/agentops-2fc20286-0d64-4245-8a16-c3c4c475deae.json
|
|
status: success
|
|
- id: dry-STEP7-attempt-2
|
|
agent: okr.reviewplan
|
|
artifact: docs/output/output_logs/001-okr-web-app/casan/dry-STEP7-attempt-2-output.md
|
|
verdict: APPROVED
|
|
trace_id: 8db4a714-5f7d-4a3d-8ba8-994b86248704
|
|
trace_file: .specify/logs/trace/agentops-8db4a714-5f7d-4a3d-8ba8-994b86248704.json
|
|
status: success
|
|
- id: dry-STEP8-attempt-1
|
|
agent: okr.dd
|
|
artifact: docs/output/output_logs/001-okr-web-app/casan/dry-STEP8-attempt-1-output.md
|
|
verdict: APPROVED
|
|
trace_id: d5a0b848-a7a1-425e-bb6c-8051ee09f180
|
|
trace_file: .specify/logs/trace/agentops-d5a0b848-a7a1-425e-bb6c-8051ee09f180.json
|
|
status: success
|
|
- id: dry-STEP8b-attempt-1
|
|
agent: okr.testkit
|
|
artifact: docs/output/output_logs/001-okr-web-app/casan/dry-STEP8b-attempt-1-output.md
|
|
verdict: APPROVED
|
|
trace_id: 88e01a1e-963e-42cd-88f2-9819c0d04078
|
|
trace_file: .specify/logs/trace/agentops-88e01a1e-963e-42cd-88f2-9819c0d04078.json
|
|
status: success
|
|
- id: dry-STEP9-attempt-1
|
|
agent: speckit.tasks
|
|
artifact: docs/output/output_logs/001-okr-web-app/casan/dry-STEP9-attempt-1-output.md
|
|
verdict: APPROVED
|
|
trace_id: 0e7dc111-b2dc-4679-9296-e277ae437257
|
|
trace_file: .specify/logs/trace/agentops-0e7dc111-b2dc-4679-9296-e277ae437257.json
|
|
status: success
|
|
- id: dry-STEP10-attempt-1
|
|
agent: speckit.implement
|
|
artifact: docs/output/output_logs/001-okr-web-app/casan/dry-STEP10-attempt-1-output.md
|
|
verdict: APPROVED
|
|
trace_id: 8e9a7a94-6cc1-402a-a43c-155b1c4ef1e0
|
|
trace_file: .specify/logs/trace/agentops-8e9a7a94-6cc1-402a-a43c-155b1c4ef1e0.json
|
|
status: success
|
|
- id: dry-STEP11-attempt-1
|
|
agent: okr.reviewcode
|
|
artifact: docs/output/output_logs/001-okr-web-app/casan/dry-STEP11-attempt-1-output.md
|
|
verdict: APPROVED
|
|
trace_id: 7fd41242-1271-4dfe-b744-2b0f7d2bc2e3
|
|
trace_file: .specify/logs/trace/agentops-7fd41242-1271-4dfe-b744-2b0f7d2bc2e3.json
|
|
status: success
|
|
- id: dry-STEP12-attempt-1
|
|
agent: okr.testkit run-tests
|
|
artifact: docs/output/output_logs/001-okr-web-app/casan/dry-STEP12-attempt-1-output.md
|
|
verdict: FAIL
|
|
trace_id: 4b919251-4cdd-4d6b-a074-b9e821b4183c
|
|
trace_file: .specify/logs/trace/agentops-4b919251-4cdd-4d6b-a074-b9e821b4183c.json
|
|
status: success
|
|
- id: dry-STEP6-attempt-3
|
|
agent: speckit.plan
|
|
artifact: docs/output/output_logs/001-okr-web-app/casan/dry-STEP6-attempt-3-output.md
|
|
verdict: APPROVED
|
|
trace_id: 5662b4f4-f19f-4c41-9a3c-61694741784d
|
|
trace_file: .specify/logs/trace/agentops-5662b4f4-f19f-4c41-9a3c-61694741784d.json
|
|
status: success
|
|
- id: dry-STEP12-attempt-2
|
|
agent: okr.testkit run-tests
|
|
artifact: docs/output/output_logs/001-okr-web-app/casan/dry-STEP12-attempt-2-output.md
|
|
verdict: PASS
|
|
trace_id: 51695317-2224-45dc-9fcf-1bb7f85d0d05
|
|
trace_file: .specify/logs/trace/agentops-51695317-2224-45dc-9fcf-1bb7f85d0d05.json
|
|
status: success
|
|
- id: dry-STEP13-attempt-1
|
|
agent: deploy
|
|
artifact: docs/output/output_logs/001-okr-web-app/casan/dry-STEP13-attempt-1-output.md
|
|
verdict: APPROVED
|
|
trace_id: b247f82b-e8aa-4eab-8919-45e3da8b961a
|
|
trace_file: .specify/logs/trace/agentops-b247f82b-e8aa-4eab-8919-45e3da8b961a.json
|
|
status: success
|