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>
37 lines
886 B
YAML
37 lines
886 B
YAML
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
|