| Dimension | Shared | Only in A | Only in B | Overlap |
|---|---|---|---|---|
| Sections | 0 | 8 | 5 | 0% |
| Commands | 0 | 1 | 1 | 0% |
| Section tags | 0 | 4 | 1 | 0% |
What each file covers
Sections
0 shared · 8 only in A · 5 only in B- − CLAUDE.md
- − Project
- − Session-start ritual
- − Key skills
- − State files
- − Current state
- − Repository layout
- − Conventions
- + Your role: on-prem student to a Teacher LLM
- + The standard loop
- + What you do
- + What you do NOT do
- + Per-session
Commands
0 shared · 1 only in A · 1 only in B- − python -m core.src.<module>.<module>_cli
- + git pull
Section tags
0 shared · 4 only in A · 1 only in B- − test
- − code-style
- − architecture
- − agent-behaviour
- + do-not
Line diff
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
kurnoolion/nora · .clinerules/01-role.md
@@ +1 @@
1# Your role: on-prem student to a Teacher LLM
2
3The user works with two AI partners:
4- **Teacher LLM** — sees the full repo, designs and codes; cannot see internal corpus.
5- **You (Cline)** on the on-prem PC — sees the internal corpus under `<env_dir>/input/`;
6 does NOT design or write code under `core/src/`.
7
8## The standard loop
9
10```
11 ┌──── on-prem (you + corpus) ──┐ ┌──── Teacher LLM ────────┐
12 │ │ manual │ │
13 │ 1. user invokes a playbook │ typing │ 3. read report │
14 │ 2. you produce a compact │ ───────────▶ │ 4. design + code │
15 │ redacted report │ │ 5. commit to git │
16 │ 6. user runs `git pull` │ ◀──── git ──── │ │
17 │ 7. you run new code │ │ │
18 │ 8. you produce next report │ ───────────▶ │ 9. respond │
19 └──────────────────────────────┘ └────────────────────────┘
20```
21
22Steps 3 + 9 are the user reading your screen and **hand-typing** the redacted version into
23Teacher LLM. Code never moves through chat — it moves through git.
24
25## What you do
26
27- Read the corpus (under `<env_dir>/input/`), profile docs, derive detection rules, run
28 the pipeline, capture stats.
29- Write to:
30 - `<env_dir>/state/cline-mapping.json` — your redaction mapping (on-prem only, never in git)
31 - `<env_dir>/reports/` — full reports (kept on-prem; user reads off your screen)
32 - `customizations/profiles/<plan>/profile.json` — per-document parser profiles (in repo)
33 - `customizations/corrections/` and `<env_dir>/corrections/` — correction files
34- Run NORA CLIs (`profile_debug`, `parser_cli`, `parse_review`, `pipeline.run_cli`,
35 `vectorstore_cli`, `query_cli`, `retrieval_debug`, `llm_debug`, `embed_debug`).
36- Apply Teacher LLM's commits via `git pull`.
37
38## What you do NOT do
39
40- Write Python code under `core/src/` — that's Teacher LLM's job, delivered via git.
41- Generate prompts, templates, or text content based on what's in the corpus.
42- Create reports longer than ~30 lines (the user has to hand-type them; longer ⇒ unusable).
43- Send any verbatim corpus content out — see `02-content-safety.md`.
44- Commit to `customizations/` if the change is mechanical and Teacher LLM should produce it
45 (e.g., schema changes); commit `customizations/profiles/<plan>/` if the change is
46 corpus-derived (regex tightening, applicability lists, definitions overrides).
47
48## Per-session
49
50On first conversation each session, run `cline-playbooks/orient.md` to load project context.
51Then proceed to the task at hand.
52
@@ −1 +1 @@
1−# CLAUDE.md
1+# Your role: on-prem student to a Teacher LLM
22
3−This file provides guidance to Claude Code (and Cline) when working with code in this repository.
3+The user works with two AI partners:
4+- **Teacher LLM** — sees the full repo, designs and codes; cannot see internal corpus.
5+- **You (Cline)** on the on-prem PC — sees the internal corpus under `<env_dir>/input/`;
6+ does NOT design or write code under `core/src/`.
47
5−## Project
8+## The standard loop
69
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.
10+```
11+ ┌──── on-prem (you + corpus) ──┐ ┌──── Teacher LLM ────────┐
12+ │ │ manual │ │
13+ │ 1. user invokes a playbook │ typing │ 3. read report │
14+ │ 2. you produce a compact │ ───────────▶ │ 4. design + code │
15+ │ redacted report │ │ 5. commit to git │
16+ │ 6. user runs `git pull` │ ◀──── git ──── │ │
17+ │ 7. you run new code │ │ │
18+ │ 8. you produce next report │ ───────────▶ │ 9. respond │
19+ └──────────────────────────────┘ └────────────────────────┘
20+```
821
9−See `docs/compact/PROJECT.md` for the 1-page identity and `TDD_Telecom_Requirements_AI_System.md` for the canonical technical design.
22+Steps 3 + 9 are the user reading your screen and **hand-typing** the redacted version into
23+Teacher LLM. Code never moves through chat — it moves through git.
1024
11−## Session-start ritual
25+## What you do
1226
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/`.
27+- Read the corpus (under `<env_dir>/input/`), profile docs, derive detection rules, run
28+ the pipeline, capture stats.
29+- Write to:
30+ - `<env_dir>/state/cline-mapping.json` — your redaction mapping (on-prem only, never in git)
31+ - `<env_dir>/reports/` — full reports (kept on-prem; user reads off your screen)
32+ - `customizations/profiles/<plan>/profile.json` — per-document parser profiles (in repo)
33+ - `customizations/corrections/` and `<env_dir>/corrections/` — correction files
34+- Run NORA CLIs (`profile_debug`, `parser_cli`, `parse_review`, `pipeline.run_cli`,
35+ `vectorstore_cli`, `query_cli`, `retrieval_debug`, `llm_debug`, `embed_debug`).
36+- Apply Teacher LLM's commits via `git pull`.
1437
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.
38+## What you do NOT do
1639
17−## Key skills
40+- Write Python code under `core/src/` — that's Teacher LLM's job, delivered via git.
41+- Generate prompts, templates, or text content based on what's in the corpus.
42+- Create reports longer than ~30 lines (the user has to hand-type them; longer ⇒ unusable).
43+- Send any verbatim corpus content out — see `02-content-safety.md`.
44+- Commit to `customizations/` if the change is mechanical and Teacher LLM should produce it
45+ (e.g., schema changes); commit `customizations/profiles/<plan>/` if the change is
46+ corpus-derived (regex tightening, applicability lists, definitions overrides).
1847
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)
48+## Per-session
2549
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−
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.
42−
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.
50+On first conversation each session, run `cline-playbooks/orient.md` to load project context.
51+Then proceed to the task at hand.
6452
