The pieces of this pack
Each row is one piece of the training binder for legal-practice-v1. Edit a piece, then release it through a new version.
A pack is made of small, replaceable pieces. That’s what makes the layering work: when a builder or one of their customers wants something different, they replace just one piece — the rest of the pack, and every future upgrade, flows around it.
- Prompt — the AI’s job description and tone of voice.
- Routing rules — the traffic rules: which kind of question goes to which part of the system.
- Glossary — the dictionary: industry words mapped to the real records and fields they refer to.
- Worked examples — sample questions with the right handling shown, which the AI learns the pattern from.
- Guardrail — the never-do list.
- Action set — actions the AI is allowed to offer here (offering is not permission — access is checked separately).
- Lane preference — which model in the fleet handles which job.
All pieces
Editing opens the piece’s content in a drawer.
| Name | Kind | Applies to | State | Changed |
|---|---|---|---|---|
| system-prompt | Prompt | everywhere | Active | Jul 22 |
| router-config | Routing rules | everywhere | Active | Jul 22 |
| glossary-matters | Glossary | records | Active | Jul 25 |
| glossary-billing | Glossary | billing | Active | Jul 25 |
| exemplars-routing | Worked examples | everywhere | Active | Jul 28 |
| guardrail-compliance | Guardrail | everywhere | Active | Jul 28 |
| lane-defaults | Lane preference | everywhere | Active | Jul 22 |
| glossary-legacy | Glossary | records | Retired | Jun 30 |
Good to know
- Placeholders
- {tenant_name} {app_name} {today} … fill in automatically at answer time
- Editing is safe
- Nothing customers see changes until you release a new version — and that version must pass the tests first
- Retiring a piece
- Marks it inactive; it drops out of the next release. Nothing is ever hard-deleted
Behind this page/templates/harnesses/:harnessPackKey/components · catalog publisher
Retrieve
sp_GetHarnessPack returns the component rows with type, target feature, and payload.Save
sp_UpsertHarnessComponent — rerun-safe upsert by (pack, key); deactivate is @IsActive = 0, never a delete.Success
- Nothing changes published behavior until sp_SnapshotHarnessPack + a gated publish.
- Deactivated components drop from the next snapshot; publish soft-deactivates absentees.
- Invalid JSON is rejected in the editor before any proc call.
CLI handoff
Implement this scaffold from the structured contract, then remove hard-coded preview rows. The source of truth is CLI Handoff and admin-cli-manifest.json.
Server-inject identity and scope values; never trust browser-supplied account, app, tenant, user, entitlement, price, or permission identifiers. Preserve the loading, empty, forbidden, failed, retrying, and completed states shown by the preview.