feat(plan-01): Phase 2 — relocate level5/agentops config + init-options to package

Move the harness-config files out of the mixed .specify/level5 and .specify/agentops
dirs (which also hold governance/domain/state) into packages/casan-harness, leaving a
per-file compat symlink at each old path. Runtime state and governance stay in place.

Moved (+ .specify symlink each):
  level5:   drift-policy.yaml kpi-schema.yaml model-fallback.yaml tool-registry.yaml
            harness-package.json project-registry.json provider-usage-sample.json
  agentops: alerts.yaml hallucination-tracking.yaml metrics.yaml rate-limits.yaml tracking.yaml
  top:      init-options.json
Stays in .specify: level5/central-governance (governance), level5/golden-runs (domain,
  Phase 3), agentops/alerts.log (state), traceability-map.json (domain, Phase 3).

Full gate: PASS=64 FAIL=0 SKIP=3 (CASAN_CI_STEP_TIMEOUT_SEC=1200).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
thanhnv
2026-07-08 00:36:06 +09:00
co-authored by Claude Opus 4.8
parent 664bd1f00c
commit d54d7f5f4c
28 changed files with 568 additions and 555 deletions
@@ -0,0 +1,36 @@
version: 1.0
description: CASAN H2 Tool rate limits — prevent runaway agent loops
limits:
- tool: deploy
max_per_pipeline: 3
window: pipeline_run
note: "Max 3 deploy attempts per pipeline run before escalation"
- tool: migration
max_per_pipeline: 5
window: pipeline_run
note: "Max 5 migration runs — includes retries"
- tool: db_write
max_per_pipeline: 10
window: pipeline_run
- tool: write_code
max_per_pipeline: 50
window: pipeline_run
note: "50 write_code calls covers BE+FE implementation + up to 5 retry cycles"
- tool: external_api
max_per_hour: 100
window: rolling_60min
- tool: agent_step
max_per_pipeline: 200
window: pipeline_run
note: "Covers all 13 steps × max retries"
enforcement:
on_limit_exceeded: deny
log_denials: true
log_path: .specify/logs/audit/rate-limit-denials.jsonl