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>
91 lines
2.3 KiB
YAML
91 lines
2.3 KiB
YAML
version: 1.0
|
|
description: CASAN Level 5 tool registry with ownership, schema, risk, idempotency, and rollback metadata
|
|
|
|
tools:
|
|
- id: agent_step
|
|
owner: ai-platform
|
|
risk_level: low
|
|
side_effect: false
|
|
idempotency_required: false
|
|
timeout_seconds: 600
|
|
|
|
- id: write_code
|
|
owner: engineering
|
|
risk_level: high
|
|
side_effect: true
|
|
idempotency_required: true
|
|
timeout_seconds: 900
|
|
allowed_agents: "boss,implement-agent"
|
|
rollback:
|
|
strategy: git_patch_reverse
|
|
script: packages/casan-harness/scripts/bash/rollback-manager.sh
|
|
|
|
- id: migration
|
|
owner: database-owner
|
|
risk_level: high
|
|
side_effect: true
|
|
idempotency_required: true
|
|
timeout_seconds: 900
|
|
allowed_agents: "boss,implement-agent"
|
|
rollback:
|
|
strategy: migration_down_or_restore
|
|
script: packages/casan-harness/scripts/bash/rollback-manager.sh
|
|
|
|
- id: deploy
|
|
owner: release-manager
|
|
risk_level: high
|
|
side_effect: true
|
|
idempotency_required: true
|
|
timeout_seconds: 1200
|
|
rate_limit_per_run: 2
|
|
allowed_agents: "boss,release-manager"
|
|
rollback:
|
|
strategy: previous_release
|
|
script: packages/casan-harness/scripts/bash/rollback-manager.sh
|
|
|
|
- id: external_api
|
|
owner: platform-team
|
|
risk_level: medium
|
|
side_effect: true
|
|
idempotency_required: true
|
|
timeout_seconds: 120
|
|
allowed_agents: "boss,implement-agent"
|
|
rollback:
|
|
strategy: compensating_request
|
|
script: packages/casan-harness/scripts/bash/rollback-manager.sh
|
|
|
|
- id: db_write
|
|
owner: database-owner
|
|
risk_level: high
|
|
side_effect: true
|
|
idempotency_required: true
|
|
timeout_seconds: 300
|
|
allowed_agents: "boss,implement-agent"
|
|
rollback:
|
|
strategy: restore_from_backup
|
|
script: packages/casan-harness/scripts/powershell/rollback-manager.ps1
|
|
|
|
- id: write_file
|
|
owner: engineering
|
|
risk_level: medium
|
|
side_effect: true
|
|
idempotency_required: false
|
|
timeout_seconds: 60
|
|
allowed_agents: "boss,implement-agent,design-agent"
|
|
rollback:
|
|
strategy: delete_or_restore
|
|
script: packages/casan-harness/scripts/bash/rollback-manager.sh
|
|
|
|
level5_gate:
|
|
required_fields:
|
|
- id
|
|
- owner
|
|
- risk_level
|
|
- side_effect
|
|
- idempotency_required
|
|
- timeout_seconds
|
|
side_effecting_tools_require:
|
|
- idempotency_key
|
|
- audit_record
|
|
- rollback_strategy
|