summaryrefslogtreecommitdiff
path: root/.cursor
diff options
context:
space:
mode:
authorinfo@mode42.com <info@mode42.com>2026-08-08 03:54:55 +0000
committerinfo@mode42.com <info@mode42.com>2026-08-08 03:54:55 +0000
commit20cb29c2f8c5c87bc590896854a20b1473ceb358 (patch)
tree2857f41513a56ad41af97b57362639298aa7f033 /.cursor
#2
Diffstat (limited to '.cursor')
-rw-r--r--.cursor/rules/hybbx-c.mdc22
-rw-r--r--.cursor/rules/hybbx-project.mdc35
-rw-r--r--.cursor/rules/public-product-terminology.mdc31
3 files changed, 88 insertions, 0 deletions
diff --git a/.cursor/rules/hybbx-c.mdc b/.cursor/rules/hybbx-c.mdc
new file mode 100644
index 0000000..acd8b08
--- /dev/null
+++ b/.cursor/rules/hybbx-c.mdc
@@ -0,0 +1,22 @@
+---
+description: C/H coding patterns for HyBBX core and plugins
+globs: "**/*.{c,h}"
+alwaysApply: false
+---
+
+# HyBBX C conventions
+
+```c
+/* ✅ Public API in include/hybbx/ */
+hybbx_result_t hybbx_foo_do_thing(hybbx_foo_t *foo, const char *in);
+
+/* ✅ Booleans from INI / config strings */
+int enabled = hybbx_parse_bool(value, default_value);
+
+/* ✅ Safe copy */
+hybbx_strlcpy(dst, src, sizeof(dst));
+```
+
+- Return `HYBBX_ERR_*` from [include/hybbx/types.h](../../include/hybbx/types.h); `HYBBX_OK` on success.
+- Plugin wire code stays in `plugins/` — not `src/core/`.
+- Packet radio: TNC/AX.25 in `plugins/packet_radio/`; HBX client to `[circuit]`.
diff --git a/.cursor/rules/hybbx-project.mdc b/.cursor/rules/hybbx-project.mdc
new file mode 100644
index 0000000..df97cf5
--- /dev/null
+++ b/.cursor/rules/hybbx-project.mdc
@@ -0,0 +1,35 @@
+---
+description: HyBBX project conventions for all work in this repo
+alwaysApply: true
+---
+
+# HyBBX project rules
+
+Read [AGENTS.md](../../AGENTS.md) and [docs/DEVELOPMENT.md](../../docs/DEVELOPMENT.md).
+
+## Product
+
+Plugin-only session daemon; Main + Secondary HBX topology ([TOPOLOGY.md](../../docs/TOPOLOGY.md)). **v2.0.0**. Technical docs in `docs/`; root README is short overview.
+
+## Code
+
+- C99, `hybbx_` prefix, `hybbx_result_t` errors
+- Core = sessions + HBX/TCP only — no wire-protocol parsing in `src/core/`
+- Plugins in `plugins/`; booleans via `hybbx_parse_bool()`
+- Minimal scope; [limits.h](../../include/hybbx/limits.h)
+- **POSIX+ / portability:** shared code stays POSIX-friendly; keep `*BSD` (FreeBSD, NetBSD, OpenBSD, …) and AmigaOS 3.9+ compatible; platform code behind `_WIN32` / `__AMIGA__` guards or dedicated files
+
+## Docs
+
+- **Technical only** — operator/INI → MANUAL.md + `share/*.ini.example`; commands → COMMANDS.md + commands.yaml; build → BUILD.md
+- No planning, roadmap, feature-status, or release-note docs
+- **Current version only** — no prior-version references in docs, `text/`, or user-facing comments
+- **As-is software** — compact prose; no upgrade/migration/history sections
+- **Linux-based operator docs** — `docs/`, `text/`, README, share examples. `HTTPD_DOCROOT`, `systemctl`, `ss`. Platform targets only in `docs/PLATFORMS.md` — own sections per OS (Linux, AmigaOS 3.9+, *BSD, MacOS X+, Windows 10+, …); spell **MacOS**, not macOS
+- **POSIX+ / portability** — `*BSD` (FreeBSD, NetBSD, OpenBSD, …) and AmigaOS 3.9+ stay compatible; shared code easy to port; no Linux-only APIs in core without guards
+
+## 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/hyBBX.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..5a84b52
--- /dev/null
+++ b/.cursor/rules/public-product-terminology.mdc
@@ -0,0 +1,31 @@
+---
+description: Public product terminology — HyBBX BBX (not BBS); never AX25SRV in shipped docs
+alwaysApply: true
+---
+
+# Public product terminology (static rule)
+
+**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** |
+
+## Other projects — BBS allowed
+
+| Context | Term |
+|---------|------|
+| MAX25-Stack, baycom-pr, generic packet apps | **BBS** OK |
+| Referring to HyBBX by name | **HyBBX** or **BBX** — not “HyBBX BBS” |
+
+## AX25SRV — never public
+
+| Scope | Rule |
+|-------|------|
+| Shipped docs (README, `docs/*.md`, GitHub) | **Never** `AX25SRV`, `ax25srv` in prose, titles, or filenames |
+| Replace with | “dual-TNC operator flow”, `DUAL-TNC-OPERATOR-GUIDE.md`, `hybbx.un1t.me`, “UN1TME” |
+
+**Relation:** document-standard · terms-exclusion
git clone -b <branch> https://cgit.mode42.com/<repo>.git
git clone -b <branch> git://cgit.mode42.com/<repo>.git

info@mode42.com