mirror of
https://github.com/microsoft/BCQuality.git
synced 2026-08-06 09:26:52 +01:00
Merge pull request #14 from Curabis/curabis-docs-structure
Standard v3 + Columbo v2 - docs/ struktur og requirement persistence
This commit is contained in:
commit
416b30ee44
2 changed files with 66 additions and 9 deletions
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
kind: action-skill
|
kind: action-skill
|
||||||
id: curabis-columbo
|
id: curabis-columbo
|
||||||
version: 1
|
version: 2
|
||||||
title: Columbo — Customer Requirement Clarifier
|
title: Columbo — Customer Requirement Clarifier
|
||||||
description: >
|
description: >
|
||||||
Customer-facing requirement clarification agent. Never tells the customer
|
Customer-facing requirement clarification agent. Never tells the customer
|
||||||
|
|
@ -49,6 +49,20 @@ He works on the customer's side. He is not quality control for the developer —
|
||||||
he is an advocate for the customer's actual need, which is often slightly
|
he is an advocate for the customer's actual need, which is often slightly
|
||||||
different from what the customer said.
|
different from what the customer said.
|
||||||
|
|
||||||
|
## How Columbo learns
|
||||||
|
|
||||||
|
At the start of each session, Columbo reads:
|
||||||
|
|
||||||
|
1. The project `CLAUDE.md` — to understand domain and project context.
|
||||||
|
2. All files in `docs/specs/` — to know what has already been clarified
|
||||||
|
on this project. Prior requirement summaries teach him the domain:
|
||||||
|
what "customer" means here, what edge cases are standard, what is
|
||||||
|
always out of scope.
|
||||||
|
3. All files in `projectmemory/` — for architectural decisions and
|
||||||
|
team observations that affect requirements.
|
||||||
|
|
||||||
|
He does not ask about things that are already settled.
|
||||||
|
|
||||||
## When to invoke
|
## When to invoke
|
||||||
|
|
||||||
- A new feature request arrives with a description but no edge cases
|
- A new feature request arrives with a description but no edge cases
|
||||||
|
|
@ -130,9 +144,27 @@ When Columbo has no more things, he produces a structured summary:
|
||||||
[ ] Implementation
|
[ ] Implementation
|
||||||
```
|
```
|
||||||
|
|
||||||
### Step 5 — Route
|
### Step 5 — Write to docs/specs/
|
||||||
|
|
||||||
If the summary is complete and the customer has confirmed it:
|
When the customer confirms the summary:
|
||||||
|
|
||||||
|
1. Derive a kebab-case filename from the feature name.
|
||||||
|
(e.g., "Kasseapparat integration" → `docs/specs/kasseapparat-integration.md`)
|
||||||
|
2. If the file does not exist: create it with the full summary content.
|
||||||
|
3. If the file already exists (updated requirement): append a new version block:
|
||||||
|
```
|
||||||
|
---
|
||||||
|
## Opdateret [YYYY-MM-DD] — [kort ændringsbeskrivelse]
|
||||||
|
[opdateret summary]
|
||||||
|
```
|
||||||
|
4. Commit: `[SPEC] <Feature name> — requirement summary`
|
||||||
|
|
||||||
|
This is how Columbo teaches future sessions. Without this step, the
|
||||||
|
clarification disappears when the conversation ends.
|
||||||
|
|
||||||
|
### Step 6 — Route
|
||||||
|
|
||||||
|
If the summary is complete and written to docs/specs/:
|
||||||
→ Route to **al-complexity** for tier classification.
|
→ Route to **al-complexity** for tier classification.
|
||||||
|
|
||||||
If open questions remain:
|
If open questions remain:
|
||||||
|
|
@ -147,6 +179,8 @@ If open questions remain:
|
||||||
- He never dismisses an edge case as "unlikely". Unlikely things happen.
|
- He never dismisses an edge case as "unlikely". Unlikely things happen.
|
||||||
- He never assumes silence means agreement. He asks again.
|
- He never assumes silence means agreement. He asks again.
|
||||||
- He never routes a task with open questions still on the list.
|
- He never routes a task with open questions still on the list.
|
||||||
|
- He never skips writing to `docs/specs/` after a confirmed summary.
|
||||||
|
A clarification that is not written down did not happen.
|
||||||
|
|
||||||
## The connection
|
## The connection
|
||||||
|
|
||||||
|
|
@ -157,7 +191,7 @@ A requirement that has not passed Columbo has not been understood.
|
||||||
Customer request
|
Customer request
|
||||||
↓
|
↓
|
||||||
Columbo
|
Columbo
|
||||||
(clarify)
|
(clarify + write docs/specs/)
|
||||||
↓
|
↓
|
||||||
al-complexity
|
al-complexity
|
||||||
(classify)
|
(classify)
|
||||||
|
|
@ -168,4 +202,4 @@ Customer request
|
||||||
|
|
||||||
The rule Columbo embodies: **CURABIS-ARCH-004 — Clarify before building.**
|
The rule Columbo embodies: **CURABIS-ARCH-004 — Clarify before building.**
|
||||||
A feature that is built on an incomplete requirement costs more to fix than
|
A feature that is built on an incomplete requirement costs more to fix than
|
||||||
to clarify. Columbo's time is cheap. Rework is not.
|
to clarify. Columbo's time is cheap. Rework is not.
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
kind: action-skill
|
kind: action-skill
|
||||||
id: curabis-standard-setup
|
id: curabis-standard-setup
|
||||||
version: 2
|
version: 3
|
||||||
title: CURABIS Standard — Project Setup
|
title: CURABIS Standard — Project Setup
|
||||||
description: >
|
description: >
|
||||||
Configures a new or existing repository to the CURABIS Standard development
|
Configures a new or existing repository to the CURABIS Standard development
|
||||||
|
|
@ -9,7 +9,7 @@ description: >
|
||||||
from authoritative templates in BCQuality. Deploys bc-mcp-bridge.js to the
|
from authoritative templates in BCQuality. Deploys bc-mcp-bridge.js to the
|
||||||
developer's machine. Also handles updates to an already-configured project.
|
developer's machine. Also handles updates to an already-configured project.
|
||||||
inputs: [repo-root]
|
inputs: [repo-root]
|
||||||
outputs: [CLAUDE.md, .mcp.json, .github/.agents/*, cspell.json, projectmemory/]
|
outputs: [CLAUDE.md, .mcp.json, .github/.agents/*, cspell.json, projectmemory/, docs/]
|
||||||
domain: setup
|
domain: setup
|
||||||
keywords: [setup, bootstrap, update, mcp, bcquality, standard, new-project]
|
keywords: [setup, bootstrap, update, mcp, bcquality, standard, new-project]
|
||||||
---
|
---
|
||||||
|
|
@ -197,6 +197,15 @@ These are invoked only when needed - not at session start:
|
||||||
|
|
||||||
{AL_PROJECTS_SECTION}
|
{AL_PROJECTS_SECTION}
|
||||||
|
|
||||||
|
## Project documentation
|
||||||
|
|
||||||
|
At session start, read all files in `docs/specs/` — they contain Columbo requirement
|
||||||
|
summaries and confirmed feature specifications. These record what has been clarified
|
||||||
|
and what scope has been agreed. Do not re-clarify what is already in docs/specs/.
|
||||||
|
|
||||||
|
`docs/decisions/` contains architectural decision records.
|
||||||
|
`docs/cleanup/` contains cleanup task lists with checkbox status.
|
||||||
|
|
||||||
## Shared project memory
|
## Shared project memory
|
||||||
|
|
||||||
At session start, read **all files** in `projectmemory/` — they contain shared
|
At session start, read **all files** in `projectmemory/` — they contain shared
|
||||||
|
|
@ -329,6 +338,17 @@ Læses automatisk af Claude Code ved session-start (via CLAUDE.md).
|
||||||
(Tilføj observationer her)
|
(Tilføj observationer her)
|
||||||
```
|
```
|
||||||
|
|
||||||
|
#### 4f. docs/
|
||||||
|
|
||||||
|
Create the standard documentation structure if it does not exist:
|
||||||
|
|
||||||
|
- `docs/specs/` — Columbo requirement summaries and feature specifications.
|
||||||
|
Read by Claude at session start. One file per feature in kebab-case.
|
||||||
|
- `docs/decisions/` — Architectural decision records. Formal, dated, immutable.
|
||||||
|
- `docs/cleanup/` — Cleanup task lists with checkbox status.
|
||||||
|
|
||||||
|
Create a `.gitkeep` file in each empty subfolder so git tracks them.
|
||||||
|
|
||||||
### Step 5 — Confirm and offer initial commit
|
### Step 5 — Confirm and offer initial commit
|
||||||
|
|
||||||
List all files written, then ask:
|
List all files written, then ask:
|
||||||
|
|
@ -342,7 +362,8 @@ If yes, stage and commit:
|
||||||
- .github/.agents/ med alle standard-agenter
|
- .github/.agents/ med alle standard-agenter
|
||||||
- .mcp.json med BC MCP bridge
|
- .mcp.json med BC MCP bridge
|
||||||
- cspell.json
|
- cspell.json
|
||||||
- projectmemory/ mappe
|
- projectmemory/ — delt projekthukommelse
|
||||||
|
- docs/specs/, docs/decisions/, docs/cleanup/ — projektdokumentation
|
||||||
|
|
||||||
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
||||||
```
|
```
|
||||||
|
|
@ -354,7 +375,7 @@ Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
||||||
Triggered by: "Opdater CURABIS Standard fra BCQuality"
|
Triggered by: "Opdater CURABIS Standard fra BCQuality"
|
||||||
|
|
||||||
Updates only the files that come directly from BCQuality.
|
Updates only the files that come directly from BCQuality.
|
||||||
Never touches `CLAUDE.md`, `projectmemory/`, or `~/.bc-mcp.config.json`.
|
Never touches `CLAUDE.md`, `projectmemory/`, `docs/`, or `~/.bc-mcp.config.json`.
|
||||||
|
|
||||||
### What gets updated
|
### What gets updated
|
||||||
|
|
||||||
|
|
@ -372,11 +393,13 @@ Never touches `CLAUDE.md`, `projectmemory/`, or `~/.bc-mcp.config.json`.
|
||||||
| `.github/.agents/m365.agent.md` | Fetch fresh from BCQuality, overwrite |
|
| `.github/.agents/m365.agent.md` | Fetch fresh from BCQuality, overwrite |
|
||||||
| `cspell.json` — words from template | Merge new words, keep project words |
|
| `cspell.json` — words from template | Merge new words, keep project words |
|
||||||
| `.mcp.json` — `al` entry | Add if `find-altool.ps1` now exists and entry is missing |
|
| `.mcp.json` — `al` entry | Add if `find-altool.ps1` now exists and entry is missing |
|
||||||
|
| `docs/specs/`, `docs/decisions/`, `docs/cleanup/` | Create if missing, never overwrite content |
|
||||||
|
|
||||||
### What does NOT get updated
|
### What does NOT get updated
|
||||||
|
|
||||||
- `CLAUDE.md` — project-specific, managed per project
|
- `CLAUDE.md` — project-specific, managed per project
|
||||||
- `projectmemory/` — team knowledge, never overwritten by tooling
|
- `projectmemory/` — team knowledge, never overwritten by tooling
|
||||||
|
- `docs/` content — project documentation, never overwritten by tooling
|
||||||
- `~/.bc-mcp.config.json` — contains developer secrets
|
- `~/.bc-mcp.config.json` — contains developer secrets
|
||||||
|
|
||||||
### After update
|
### After update
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue