summaryrefslogtreecommitdiff
path: root/.cursor/rules
diff options
context:
space:
mode:
Diffstat (limited to '.cursor/rules')
-rw-r--r--.cursor/rules/00-master-repo-governance.mdc62
-rw-r--r--.cursor/rules/english-only-project.mdc33
-rw-r--r--.cursor/rules/max25-project.mdc44
-rw-r--r--.cursor/rules/public-product-terminology.mdc27
-rw-r--r--.cursor/rules/research-storage.mdc25
5 files changed, 191 insertions, 0 deletions
diff --git a/.cursor/rules/00-master-repo-governance.mdc b/.cursor/rules/00-master-repo-governance.mdc
new file mode 100644
index 0000000..df34529
--- /dev/null
+++ b/.cursor/rules/00-master-repo-governance.mdc
@@ -0,0 +1,62 @@
+---
+description: FIXED — MASTER primary (rules+docs); ./* secondary; no documents in ./* (operator-only).
+alwaysApply: true
+---
+
+# MASTER-REPO governance (IMMUTABLE)
+
+**Authority:** Operator only. Agents **must not** edit this file or `../.cursor/hooks/refresh-master-ai-rules.sh`.
+
+**Standard:** Fixed for every path under `/home/akb/Code/10-PROJECTS/` (`./*`). Centralized development — not overridable by agents or local rules.
+
+## Primary vs secondary (always)
+
+| Tier | Scope | Role |
+|------|-------|------|
+| **PRIMARY** | MASTER-REPO (`0-RESEARCHES`) | Rules **and** documents — sole authority |
+| **SECONDARY** | `./*` (this tree) | Code/work only — never overrides MASTER |
+
+**MASTER-REPO goes first in rules and documents — always.** Local `./*` is secondary — always.
+
+## Precedence (strict)
+
+1. **MASTER** `/home/akb/0-RESEARCHES/AGENT-INDEX.md` — law entry (legacy: `/home/akb/Code/0-RESEARCHES/`)
+2. **MASTER** `.cursor/rules/*.mdc` — AI rules referenced from AGENT-INDEX
+3. **Local** `.cursor/rules/*` (except this file) — product hints only; **never** override MASTER
+
+## No documents in `./*` (FIXED)
+
+Agents **must not create, edit, or extend documentation** anywhere under `./*`:
+
+| Forbidden | Examples |
+|-----------|----------|
+| New or changed `.md` | `docs/`, `README.md`, `AGENTS.md`, `CHANGELOG.md`, investigations |
+| Shipped doc sync | Editing frozen `docs/` in this repo |
+| Research notes | Any write-up belonging in MASTER `projects/max25-stack/` |
+
+| Allowed in `./*` | Examples |
+|------------------|----------|
+| **Code** | `stacks/`, `plugins/`, `scripts/`, `include/`, `share/`, tests, build |
+| **Code-tied config** | `.ini.example` only when a code change requires it |
+| **Inline code comments** | In source files — not standalone documents |
+
+All documentation → **MASTER-REPO only** (AGENT-INDEX §0.5). Operator may change this rule; agents may not.
+
+## MASTER pull scope (sync hook)
+
+Auto-sync pulls **rules only** from MASTER: `AGENT-INDEX.md` + `.cursor/rules/*.mdc`.
+
+For **writing** documentation: go to MASTER — never `./*`.
+
+## 60-minute resync (active work)
+
+Hook `../.cursor/hooks/refresh-master-ai-rules.sh` → `.cursor/cache/master-ai-rules.snapshot.md` every **60 minutes**.
+
+## MASTER path resolution
+
+1. `/home/akb/0-RESEARCHES/`
+2. `/home/akb/Code/0-RESEARCHES/` (legacy)
+
+## Slave repo (MAX25-Stack)
+
+Code/work only. Read frozen `docs/` for context — do not author here.
diff --git a/.cursor/rules/english-only-project.mdc b/.cursor/rules/english-only-project.mdc
new file mode 100644
index 0000000..1e01e47
--- /dev/null
+++ b/.cursor/rules/english-only-project.mdc
@@ -0,0 +1,33 @@
+---
+description: MAX25-Stack repo content is English-only; chat with user stays German
+alwaysApply: true
+---
+
+# Language — English project, German chat
+
+**Governance:** [00-master-repo-governance.mdc](00-master-repo-governance.mdc) — no documents in `./*`. English rule applies to **code** and user-facing strings only.
+
+## Repository (MAX25-Stack)
+
+**Shipped content is English** when touching **code** in this repo:
+
+| English required | Examples |
+|------------------|----------|
+| User-facing strings | Terminal UI, CLI help, error messages shown to operators |
+| Config templates | `share/**/*.example` comments — code-tied only |
+| Scripts (user output) | `scripts/*.sh` usage text, echoed next steps |
+| Inline code comments | New comments in English |
+
+**Not editable here:** `docs/`, `README.md`, `AGENTS.md`, and all standalone `.md` — MASTER only.
+
+**Exception (temporary):** existing German **source code comments** may remain until translated; new comments in English.
+
+**Not in repo:** deep research → MASTER `projects/max25-stack/`.
+
+## Chat with the user
+
+Respond in **German** in conversation.
+
+## German in code strings
+
+When fixing user-visible strings in **code** (not standalone docs), translate to English in the same change.
diff --git a/.cursor/rules/max25-project.mdc b/.cursor/rules/max25-project.mdc
new file mode 100644
index 0000000..73fa372
--- /dev/null
+++ b/.cursor/rules/max25-project.mdc
@@ -0,0 +1,44 @@
+---
+description: MainAX25-Stack project conventions for all work in this repo
+alwaysApply: true
+---
+
+# MainAX25-Stack (MAX25) project rules
+
+**Governance:** [00-master-repo-governance.mdc](00-master-repo-governance.mdc) — MASTER `AGENT-INDEX.md` precedes this file. Resync every 60 min via hook.
+
+Read local [AGENT-INDEX.md](../../AGENT-INDEX.md) → [AGENTS.md](../../AGENTS.md) → [docs/DEVELOPMENT.md](../../docs/DEVELOPMENT.md) after MASTER rules are applied.
+
+## Product
+
+**Main AX.25 Stack** — standalone Packet Radio / AX.25 hardware lifecycle. HyBBX attaches as external consumer (`packet_radio`, `baycom`, `crdop`). **v1.0.0**.
+
+Plugin hierarchy: operating mode (`betriebsform/`) → Hardware → Device. Registry: `plugins/manifest.yaml`.
+
+## Code & scripts
+
+- Bash/shell for operator tooling; C for merged stack binaries
+- **Language:** entire repo **English** — docs, UI strings, examples, user-facing script output ([english-only-project.mdc](english-only-project.mdc))
+- Source code comments may stay German temporarily; new comments in English
+- Plugin IDs, scripts, and shipped docs: **English**
+- Minimal scope; link to `stacks/*/` — do not duplicate stack READMEs
+- MAX25 owns modem/TNC prep; HyBBX owns sessions — no session logic in MAX25
+
+## Platform
+
+- **Linux-primary** development and operator docs (`/dev/ttyS*`, kernel BayCom, `systemctl`)
+- *BSD supported in principle; porting **much later** — [docs/PLATFORMS.md](../../docs/PLATFORMS.md)
+- BayCom kernel path and kernel AX.25 are Linux-only
+
+## Docs
+
+- **FIXED:** No documents in `./*` — [00-master-repo-governance.mdc](00-master-repo-governance.mdc). All docs in MASTER only.
+- **Read** frozen `docs/` when coding; never author or edit here
+- **Research:** MASTER vault `projects/max25-stack/` only
+- [docs/MERGE-REPORT.md](../../docs/MERGE-REPORT.md) — archive only, do not extend
+
+## Git
+
+- **Identity only:** `ngteq <info@un1t.me>` — no other author name or email in this repo (`.git/config`: `user.name`, `user.email`)
+- **Push only:** SSH `~/.ssh/id_ed25519_ngteq` → `git@github.com:ngteq/MAX25-Stack.git`
+- No commit/push unless the user asks
diff --git a/.cursor/rules/public-product-terminology.mdc b/.cursor/rules/public-product-terminology.mdc
new file mode 100644
index 0000000..39176e5
--- /dev/null
+++ b/.cursor/rules/public-product-terminology.mdc
@@ -0,0 +1,27 @@
+---
+description: Public product terminology — HyBBX BBX (not BBS); never AX25SRV in shipped docs
+alwaysApply: true
+---
+
+# Public product terminology (static rule)
+
+**Internal** — agent static rule; never put “static rule” in shipped README/`docs/*.md`.
+
+**Scope:** GitHub-facing and shipped `*.md` in this repo. Full spec: MASTER vault [AGENT-INDEX §0.16](https://github.com/ngteq/0-RESEARCHES/blob/main/AGENT-INDEX.md#016-public-product-terminology-static-rule) · `operations/2026-07-15-public-product-terminology-rule.md`.
+
+## HyBBX — use BBX, not BBS
+
+| Context | Term |
+|---------|------|
+| HyBBX product / UN1TME instance | **BBX** |
+| Forbidden in HyBBX public copy | **BBS** |
+
+## MAX25-Stack — BBS OK, no AX25SRV
+
+| Context | Term |
+|---------|------|
+| Generic packet bulletin systems | **BBS** OK |
+| HyBBX product reference | **HyBBX** or **BBX** |
+| Shipped docs | **Never** `AX25SRV`, `ax25srv` in prose or doc filenames |
+
+**Relation:** document-standard · terms-exclusion
diff --git a/.cursor/rules/research-storage.mdc b/.cursor/rules/research-storage.mdc
new file mode 100644
index 0000000..1c979c7
--- /dev/null
+++ b/.cursor/rules/research-storage.mdc
@@ -0,0 +1,25 @@
+---
+description: Research and all documentation — MASTER vault only; MAX25-Stack is code + publication
+alwaysApply: true
+---
+
+# Research storage & documentation boundary
+
+**FIXED:** [00-master-repo-governance.mdc](00-master-repo-governance.mdc) — no documents in `./*`. MASTER is primary for rules **and** documents.
+
+**MAX25-Stack:** code + publication binaries only. Existing `docs/` = read-only context for agents — never edit.
+
+Deep research → MASTER vault only (`projects/max25-stack/`, `hardware/tnc2c/`, `projects/integration/`).
+
+Workflow and REGISTER: MASTER `AGENT-INDEX.md`.
+
+**Automation (MASTER tools only):**
+
+```bash
+VAULT="${MASTER_VAULT:-/home/akb/0-RESEARCHES}"
+[[ -d "$VAULT" ]] || VAULT=/home/akb/Code/0-RESEARCHES
+"$VAULT/tools/vault-duplicate-check.sh" "keyword"
+"$VAULT/tools/vault-register-check.sh" "$VAULT/path/to/new.md"
+```
+
+Do **not** use legacy paths `notes/` or `findings/` at vault root — use `projects/max25-stack/`, `projects/hybbx/`, `projects/integration/`.
git clone -b <branch> https://cgit.mode42.com/<repo>.git
git clone -b <branch> git://cgit.mode42.com/<repo>.git

info@mode42.com