| Dimension | Shared | Only in A | Only in B | Overlap |
|---|---|---|---|---|
| Sections | 1 | 5 | 7 | 8% |
| Commands | 0 | 0 | 1 | 0% |
| Section tags | 1 | 1 | 3 | 20% |
What each file covers
Sections
1 shared · 5 only in A · 7 only in B- − Output discipline: compact, hand-typeable reports
- − Constraints
- − Standard report types
- − What NOT to include
- − Example layouts
- + CLAUDE.md
- + Project
- + Session-start ritual
- + Key skills
- + State files
- + Current state
- + Repository layout
- Conventions
Commands
0 shared · 0 only in A · 1 only in B- + python -m core.src.<module>.<module>_cli
Section tags
1 shared · 1 only in A · 3 only in B- − types
- + test
- + architecture
- + agent-behaviour
- code-style
Line diff
kurnoolion/nora · .clinerules/03-output-discipline.md
@@ −1 @@
1# Output discipline: compact, hand-typeable reports
2
3The user reads your report off your screen and **hand-types** the redacted version into
4Teacher LLM. Reports MUST be short, structured, and easy to read off a single screen.
5
6## Constraints
7
8- **Maximum 30 lines** per report (target 15)
9- **Tabular over prose** wherever possible
10- **One observation per line**
11- **Fixed format per playbook** — each playbook below defines its report shape exactly
12- **Numbers, not adjectives** — `89%` not `most`; `503` not `many`
13
14## Standard report types
15
16Each playbook produces one of these:
17
18| Type | Used by | Lines | Shape |
19|---|---|---|---|
20| `ORIENT` | orient | 5–8 | session-bootstrap confirmation |
21| `MAP` | mapping | 2–4 | mapping diff confirmation |
22| `PROF` | profile-corpus | 12–15 | per-element profile summary |
23| `RULE` | derive-rule | 8–10 | rule definition + coverage |
24| `RPT` | debug-pipeline | 15–25 | per-stage runtime stats |
25| `BUNDLE` | share-back | ≤40 | aggregation of multiple reports |
26
27The exact field set per type is defined in the corresponding playbook.
28
29## Conventions
30
31- **Leading line is the report-type marker**: `PROF v=1 doc=<PLAN0>` — first token names
32 the type so the user (and Teacher LLM) can parse instantly.
33- **Field=value pairs**: `req=487 sec=312 tbl=98` — shorter than prose, no ambiguity.
34- **Placeholders only** for any redacted token: never emit a real value.
35- **No prose conclusions**: don't write "this looks problematic" or "I recommend X" —
36 Teacher LLM interprets and decides.
37- **Emit `MAPPING:` lines inline** when you add a new entry to the redaction mapping
38 during this report: `MAPPING: added LTEAT→<PLAN0>` (one line per addition).
39
40## What NOT to include
41
42- Prose explanations of "what this means"
43- Speculation, interpretation, recommendations
44- Full file contents (paths only)
45- Any token in unredacted form
46- Per-instance breakdowns (aggregate by category, never list verbatim instances)
47- Long examples — if the user needs an example, they can ask for one specific one
48
49## Example layouts
50
51**PROF** (good):
52```
53PROF v=1 doc=<PLAN0>
54sec_re: ^(\d+(?:\.\d+)+)\s+\S
55req_re: ^<MNO0>_REQ_<PLAN0>_\d+$
56toc: leader-dot-page thr=0.7
57strk: geom 2lines width≥0.5
58ver: ^revision\s+history$
59defs: 2col-table Acronym|Definition
60N: req=487 sec=312 tbl=98 fig=23
61audit: HI=96.0% MED=3.0% LOW=0.1%
62miss: 5 LOW (deep-nest depth≥9)
63```
64
65**PROF** (bad — leaks content):
66```
67PROF v=1 doc=LTEAT
68The first section is "1.1 INTRODUCTION" which contains the boilerplate...
69Section 1.2 "ATTACH PROCEDURES" describes... ← verbatim heading text
70```
71
kurnoolion/nora · CLAUDE.md
@@ +1 @@
1# CLAUDE.md
2
3This file provides guidance to Claude Code (and Cline) when working with code in this repository.
4
5## Project
6
7**NORA** — Network Operator Requirements Analyzer. AI system combining a unified Knowledge Graph with targeted RAG for intelligent querying, cross-referencing, and compliance analysis of US MNO device requirement specifications across multiple MNOs (MNO-A, AT&T, T-Mobile) and quarterly releases.
8
9See `docs/compact/PROJECT.md` for the 1-page identity and `TDD_Telecom_Requirements_AI_System.md` for the canonical technical design.
10
11## Session-start ritual
12
13This project uses **COMPACT** — a portable scaffold for team AI-partnered software development. The AI scaffolding lives under `.claude/skills/` and the durable state lives under `docs/compact/`.
14
15At the start of every session, invoke `run the session-start skill` (or `/session-start`). It loads Tier 1 context (`PROJECT.md` / `STATUS.md` / `MAP.md` / the active phase prompt) and asks what you're working on. Re-invoke mid-session after Claude Code auto-compaction or any time context feels stale.
16
17## Key skills
18
19- `/session-start` — hydrate context at start of every session
20- `/switch-phase <requirements | architecture | development>` — adopt the phase persona
21- `/regen-map` — regenerate `MAP.md` + Structure sections when code structure changes
22- `/drift-check <requirements | design | dev-full | dev-module <name> | all>` — audit for drift between requirements, design, and implementation
23- `/close-session` — end-of-session ritual: triages decisions, updates STATUS, audits MODULE.md edits, proposes commit (this is the **only** place memory is made)
24- `/project-init --re-init` — regenerate phase prompts after project-level changes (state files preserved)
25
26## State files
27
28- `docs/compact/PROJECT.md` — identity + Contributors table
29- `docs/compact/STATUS.md` — active phase, done / in progress / next, flags
30- `docs/compact/requirements.md` — FR / NFR / Deferred (authority for what the system must do)
31- `docs/compact/MAP.md` — module table + Mermaid dependency graph (regenerated)
32- `docs/compact/DECISIONS.md` — append-only ADR log
33- `docs/compact/structure-conventions.md` — what's a module, visibility mapping
34- `docs/compact/design-inputs/` — TDD, README, SESSION_SUMMARY, SETUP_OFFLINE (archival design inputs)
35- `docs/compact/retrofit-snapshot.md` — archival scan of existing codebase at retrofit time
36- `docs/compact/phases/{requirements,architecture,development}.md` — phase personas loaded by `/switch-phase`
37- `src/<module>/MODULE.md` — per-module contracts (16 skeletons seeded by retrofit — see STATUS for curation progress)
38
39## Current state
40
41Retrofitted on 2026-04-21 via `/project-init --retrofit`. The 16 MODULE.md skeletons were curated through 2026-04-27 (sentinels removed). Three-tier code reorg (`core/` + `customizations/` + `config/`) executed 2026-04-27. See `docs/compact/STATUS.md` for the current active phase and work list.
42
43## Repository layout
44
45Three-tier code organization (D-019..D-024) plus a per-env runtime directory `<env_dir>`. See `docs/compact/structure-conventions.md` for the canonical layout.
46
47- `core/src/` — AI-generated Python source (16 packages; one MODULE.md per package). Manual edits exceptional (D-019).
48- `core/tests/` — pytest suite (one `test_<module>.py` per package).
49- `customizations/profiles/` — human-curated document profiles (committed JSON).
50- `customizations/llm/` — AI-scaffolded LLM provider boilerplate (e.g. `proprietary_provider.py`); humans complete the `complete()` body for production deployments.
51- `config/` — per-module settings (currently `config/web.json`; more files land as modules surface configurable knobs).
52- `environments/` — per-environment configs (gitignored except `.gitkeep`); each names an `env_dir` path.
53- `docs/compact/` — COMPACT state files.
54- `.claude/skills/` — COMPACT skills (flat layout: compact-skill, session-start, switch-phase, regen-map, drift-check, close-session, project-init, doctor).
55- `<env_dir>/` (runtime, user-supplied path; not in repo) — `input/<MNO>/<release>/`, `out/<stage>/`, `state/`, `corrections/`, `reports/`, `eval/`.
56
57## Conventions
58
59- Python; no `pyproject.toml` — `requirements.txt` + `core/src/` layout with `__init__.py` per package.
60- Public surface: top-level identifiers without a leading underscore (plus `__init__.py` re-exports when `__all__` is used).
61- CLI per module: `core/src/<module>/<module>_cli.py` with `main()` entrypoint; invoked as `python -m core.src.<module>.<module>_cli`.
62- Protocol-based abstractions: `LLMProvider`, `EmbeddingProvider`, `VectorStoreProvider`.
63- No proprietary document content in logs, error messages, compact reports, or test fixtures.
64
@@ −1 +1 @@
1−# Output discipline: compact, hand-typeable reports
1+# CLAUDE.md
22
3−The user reads your report off your screen and **hand-types** the redacted version into
4−Teacher LLM. Reports MUST be short, structured, and easy to read off a single screen.
3+This file provides guidance to Claude Code (and Cline) when working with code in this repository.
54
6−## Constraints
5+## Project
76
8−- **Maximum 30 lines** per report (target 15)
9−- **Tabular over prose** wherever possible
10−- **One observation per line**
11−- **Fixed format per playbook** — each playbook below defines its report shape exactly
12−- **Numbers, not adjectives** — `89%` not `most`; `503` not `many`
7+**NORA** — Network Operator Requirements Analyzer. AI system combining a unified Knowledge Graph with targeted RAG for intelligent querying, cross-referencing, and compliance analysis of US MNO device requirement specifications across multiple MNOs (MNO-A, AT&T, T-Mobile) and quarterly releases.
138
14−## Standard report types
9+See `docs/compact/PROJECT.md` for the 1-page identity and `TDD_Telecom_Requirements_AI_System.md` for the canonical technical design.
1510
16−Each playbook produces one of these:
11+## Session-start ritual
1712
18−| Type | Used by | Lines | Shape |
19−|---|---|---|---|
20−| `ORIENT` | orient | 5–8 | session-bootstrap confirmation |
21−| `MAP` | mapping | 2–4 | mapping diff confirmation |
22−| `PROF` | profile-corpus | 12–15 | per-element profile summary |
23−| `RULE` | derive-rule | 8–10 | rule definition + coverage |
24−| `RPT` | debug-pipeline | 15–25 | per-stage runtime stats |
25−| `BUNDLE` | share-back | ≤40 | aggregation of multiple reports |
13+This project uses **COMPACT** — a portable scaffold for team AI-partnered software development. The AI scaffolding lives under `.claude/skills/` and the durable state lives under `docs/compact/`.
2614
27−The exact field set per type is defined in the corresponding playbook.
15+At the start of every session, invoke `run the session-start skill` (or `/session-start`). It loads Tier 1 context (`PROJECT.md` / `STATUS.md` / `MAP.md` / the active phase prompt) and asks what you're working on. Re-invoke mid-session after Claude Code auto-compaction or any time context feels stale.
2816
29−## Conventions
17+## Key skills
3018
31−- **Leading line is the report-type marker**: `PROF v=1 doc=<PLAN0>` — first token names
32− the type so the user (and Teacher LLM) can parse instantly.
33−- **Field=value pairs**: `req=487 sec=312 tbl=98` — shorter than prose, no ambiguity.
34−- **Placeholders only** for any redacted token: never emit a real value.
35−- **No prose conclusions**: don't write "this looks problematic" or "I recommend X" —
36− Teacher LLM interprets and decides.
37−- **Emit `MAPPING:` lines inline** when you add a new entry to the redaction mapping
38− during this report: `MAPPING: added LTEAT→<PLAN0>` (one line per addition).
19+- `/session-start` — hydrate context at start of every session
20+- `/switch-phase <requirements | architecture | development>` — adopt the phase persona
21+- `/regen-map` — regenerate `MAP.md` + Structure sections when code structure changes
22+- `/drift-check <requirements | design | dev-full | dev-module <name> | all>` — audit for drift between requirements, design, and implementation
23+- `/close-session` — end-of-session ritual: triages decisions, updates STATUS, audits MODULE.md edits, proposes commit (this is the **only** place memory is made)
24+- `/project-init --re-init` — regenerate phase prompts after project-level changes (state files preserved)
3925
40−## What NOT to include
26+## State files
4127
42−- Prose explanations of "what this means"
43−- Speculation, interpretation, recommendations
44−- Full file contents (paths only)
45−- Any token in unredacted form
46−- Per-instance breakdowns (aggregate by category, never list verbatim instances)
47−- Long examples — if the user needs an example, they can ask for one specific one
28+- `docs/compact/PROJECT.md` — identity + Contributors table
29+- `docs/compact/STATUS.md` — active phase, done / in progress / next, flags
30+- `docs/compact/requirements.md` — FR / NFR / Deferred (authority for what the system must do)
31+- `docs/compact/MAP.md` — module table + Mermaid dependency graph (regenerated)
32+- `docs/compact/DECISIONS.md` — append-only ADR log
33+- `docs/compact/structure-conventions.md` — what's a module, visibility mapping
34+- `docs/compact/design-inputs/` — TDD, README, SESSION_SUMMARY, SETUP_OFFLINE (archival design inputs)
35+- `docs/compact/retrofit-snapshot.md` — archival scan of existing codebase at retrofit time
36+- `docs/compact/phases/{requirements,architecture,development}.md` — phase personas loaded by `/switch-phase`
37+- `src/<module>/MODULE.md` — per-module contracts (16 skeletons seeded by retrofit — see STATUS for curation progress)
4838
49−## Example layouts
39+## Current state
5040
51−**PROF** (good):
52−```
53−PROF v=1 doc=<PLAN0>
54−sec_re: ^(\d+(?:\.\d+)+)\s+\S
55−req_re: ^<MNO0>_REQ_<PLAN0>_\d+$
56−toc: leader-dot-page thr=0.7
57−strk: geom 2lines width≥0.5
58−ver: ^revision\s+history$
59−defs: 2col-table Acronym|Definition
60−N: req=487 sec=312 tbl=98 fig=23
61−audit: HI=96.0% MED=3.0% LOW=0.1%
62−miss: 5 LOW (deep-nest depth≥9)
63−```
41+Retrofitted on 2026-04-21 via `/project-init --retrofit`. The 16 MODULE.md skeletons were curated through 2026-04-27 (sentinels removed). Three-tier code reorg (`core/` + `customizations/` + `config/`) executed 2026-04-27. See `docs/compact/STATUS.md` for the current active phase and work list.
6442
65−**PROF** (bad — leaks content):
66−```
67−PROF v=1 doc=LTEAT
68−The first section is "1.1 INTRODUCTION" which contains the boilerplate...
69−Section 1.2 "ATTACH PROCEDURES" describes... ← verbatim heading text
70−```
43+## Repository layout
44+
45+Three-tier code organization (D-019..D-024) plus a per-env runtime directory `<env_dir>`. See `docs/compact/structure-conventions.md` for the canonical layout.
46+
47+- `core/src/` — AI-generated Python source (16 packages; one MODULE.md per package). Manual edits exceptional (D-019).
48+- `core/tests/` — pytest suite (one `test_<module>.py` per package).
49+- `customizations/profiles/` — human-curated document profiles (committed JSON).
50+- `customizations/llm/` — AI-scaffolded LLM provider boilerplate (e.g. `proprietary_provider.py`); humans complete the `complete()` body for production deployments.
51+- `config/` — per-module settings (currently `config/web.json`; more files land as modules surface configurable knobs).
52+- `environments/` — per-environment configs (gitignored except `.gitkeep`); each names an `env_dir` path.
53+- `docs/compact/` — COMPACT state files.
54+- `.claude/skills/` — COMPACT skills (flat layout: compact-skill, session-start, switch-phase, regen-map, drift-check, close-session, project-init, doctor).
55+- `<env_dir>/` (runtime, user-supplied path; not in repo) — `input/<MNO>/<release>/`, `out/<stage>/`, `state/`, `corrections/`, `reports/`, `eval/`.
56+
57+## Conventions
58+
59+- Python; no `pyproject.toml` — `requirements.txt` + `core/src/` layout with `__init__.py` per package.
60+- Public surface: top-level identifiers without a leading underscore (plus `__init__.py` re-exports when `__all__` is used).
61+- CLI per module: `core/src/<module>/<module>_cli.py` with `main()` entrypoint; invoked as `python -m core.src.<module>.<module>_cli`.
62+- Protocol-based abstractions: `LLMProvider`, `EmbeddingProvider`, `VectorStoreProvider`.
63+- No proprietary document content in logs, error messages, compact reports, or test fixtures.
7164
