Appearance
Project profile
backlog/docs/critical-areas.md names the parts of a project where a mistake would go unnoticed and be costly or hard to reverse. The managed AGENTS.md block tells every agent to read it at session start: whatever it lists always runs on the top model tier, and whatever it lists under "Independent check" is verified by a second subagent before the result is used. See Harness support for the tier rule itself.
Format
English heading and keys, body in the language you work in, at most 150 words below the Status line, grouped by risk area rather than by activity:
markdown
# Critical areas
Status: 2026-10-10, created with Fable 5.1, provisional
Always on the top tier:
- Payments: refund flow in src/billing, Stripe webhook handlers
- Data loss: migrations in db/migrate, anything deleting customer records
- Credentials: .env handling, OAuth token storage
- Public release: npm publish, release notes
Independent check: migrations, release publishing
May go to lower tiers: UI copy, test fixtures, docs, formatting, lookupsAlways on the top tier:holds 4 to 7 items with concrete examples.Independent check:lists irreversible operations; leave the line out when there are none.May go to lower tiers:names uncritical kinds of work so that not everything gets escalated.provisionalat the end of the Status line means the profile was drafted below the top tier or from a description only and should be revised on the top tier. The Status line is the only part of the file thatsblreads.
Creating it
Let your agent write it. sbl init and sbl update install the project-profile skill for Claude Code and OpenCode, and the block's rule 8 makes the agent offer it once while the file is missing — it never runs without your consent. The skill does the assessment on the top tier (or hands it to a top-tier subagent), gathers facts from your instructions, README, layout and central modules, writes the file and stops for your review. While the file is missing, sbl init ends with a hint to ask your agent for it.
Keeping it current
The profile is not re-checked every session. Ask for a revision when the project changes substantially (new modules, new risks, going live), when a misclassification caused a mistake, or when a provisional profile can now be judged better.
bash
sbl doctorCheck 6 reads the file: [skip] while it is missing, [warn] (exit 4) when the Status line says provisional or is absent, [ok] otherwise. sbl never writes or edits the file.