Skip to content

Commit 2637dea

Browse files
Jonathan D.A. Jewellclaude
andcommitted
feat: add RSR scaffolding - bot directives, AI manifest, ecosystem refs
Adds .bot_directives/ for gitbot-fleet integration, 0-AI-MANIFEST.a2ml for AI agent discovery, and updates ECOSYSTEM.scm with FlatRacoon netstack cross-references. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 4d5db33 commit 2637dea

10 files changed

Lines changed: 179 additions & 19 deletions

File tree

.bot_directives/README.scm

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
;; SPDX-License-Identifier: PMPL-1.0-or-later
2+
;; .bot_directives — per-bot rules and constraints
3+
;; Media-Type: application/vnd.bot-directives+scm
4+
5+
(bot-directives
6+
(version "1.0")
7+
(notes
8+
"Repo-specific bot constraints."
9+
"Bots must follow these directives in addition to global policies."))

.bot_directives/echidnabot.scm

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
;; SPDX-License-Identifier: PMPL-1.0-or-later
2+
(bot-directive
3+
(bot "echidnabot")
4+
(scope "formal verification and fuzzing")
5+
(allow ("analysis" "fuzzing" "proof checks"))
6+
(deny ("write to core modules" "write to bindings"))
7+
(notes "May open findings; code changes require explicit approval"))

.bot_directives/finishbot.scm

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
;; SPDX-License-Identifier: PMPL-1.0-or-later
2+
(bot-directive
3+
(bot "finishbot")
4+
(scope "release readiness")
5+
(allow ("release checklists" "docs updates" "metadata fixes"))
6+
(deny ("code changes without approval"))
7+
(notes "Focus on polish, licensing, and packaging"))

.bot_directives/glambot.scm

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
;; SPDX-License-Identifier: PMPL-1.0-or-later
2+
(bot-directive
3+
(bot "glambot")
4+
(scope "presentation + accessibility")
5+
(allow ("docs" "readme badges" "ui/accessibility suggestions"))
6+
(deny ("logic changes"))
7+
(notes "Edits limited to presentation layers"))

.bot_directives/rhodibot.scm

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
;; SPDX-License-Identifier: PMPL-1.0-or-later
2+
(bot-directive
3+
(bot "rhodibot")
4+
(scope "rsr-compliance")
5+
(allow ("metadata" "docs" "repo-structure checks"))
6+
(deny ("destructive edits without approval"))
7+
(notes "Auto-fix allowed only for formatting in docs and metadata"))
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
;; SPDX-License-Identifier: PMPL-1.0-or-later
2+
(bot-directive
3+
(bot "robot-repo-automaton")
4+
(scope "automated fixes")
5+
(allow ("low-risk automated edits"))
6+
(deny ("core logic changes without approval"))
7+
(notes "Only apply fixes backed by explicit rule approval"))

.bot_directives/seambot.scm

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
;; SPDX-License-Identifier: PMPL-1.0-or-later
2+
(bot-directive
3+
(bot "seambot")
4+
(scope "integration health")
5+
(allow ("analysis" "contract checks" "docs updates"))
6+
(deny ("code changes without approval"))
7+
(notes "May add integration test suggestions"))

.bot_directives/sustainabot.scm

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
;; SPDX-License-Identifier: PMPL-1.0-or-later
2+
(bot-directive
3+
(bot "sustainabot")
4+
(scope "eco/economic standards")
5+
(allow ("analysis" "reporting" "docs updates"))
6+
(deny ("code changes without approval"))
7+
(notes "Focus on measurement and recommendations"))

.machine_readable/ECOSYSTEM.scm

Lines changed: 7 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,8 @@
11
;; SPDX-License-Identifier: PMPL-1.0-or-later
2-
;; ECOSYSTEM.scm - Ecosystem position for bgp-backbone-lab
3-
;; Media-Type: application/vnd.ecosystem+scm
4-
5-
(ecosystem
6-
(version "1.0")
7-
(name "bgp-backbone-lab")
8-
(type "")
9-
(purpose "")
10-
11-
(position-in-ecosystem
12-
(category "")
13-
(subcategory "")
14-
(unique-value ()))
15-
16-
(related-projects ())
17-
18-
(what-this-is ())
19-
20-
(what-this-is-not ()))
2+
(ecosystem (metadata (version "0.2.0") (last-updated "2026-02-08"))
3+
(project (name "bgp-backbone-lab") (purpose "eBGP backbone simulation with containerlab") (role network-lab))
4+
(flatracoon-integration
5+
(parent "flatracoon/netstack")
6+
(layer network)
7+
(depended-on-by ())
8+
(depends-on ())))

0-AI-MANIFEST.a2ml

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
# STOP - CRITICAL READING REQUIRED
2+
3+
**THIS FILE MUST BE READ FIRST BY ALL AI AGENTS**
4+
5+
## WHAT IS THIS?
6+
7+
This is the AI manifest for **bgp-backbone-lab**. It declares:
8+
- Canonical file locations (where things MUST be, and nowhere else)
9+
- Critical invariants (rules that must NEVER be violated)
10+
- Repository structure and organization
11+
12+
## CANONICAL LOCATIONS (UNIVERSAL RULE)
13+
14+
### Machine-Readable Metadata: `.machine_readable/` ONLY
15+
16+
These 6 SCM files MUST exist in `.machine_readable/` directory ONLY:
17+
1. **STATE.scm** - Project state, progress, blockers
18+
2. **META.scm** - Architecture decisions, governance
19+
3. **ECOSYSTEM.scm** - Position in ecosystem, relationships
20+
4. **AGENTIC.scm** - AI agent interaction patterns
21+
5. **NEUROSYM.scm** - Neurosymbolic integration config
22+
6. **PLAYBOOK.scm** - Operational runbook
23+
24+
**CRITICAL:** If ANY of these files exist in the root directory, this is an ERROR.
25+
26+
### Bot Directives: `.bot_directives/` ONLY
27+
28+
Bot-specific instructions for:
29+
- rhodibot - Git operations
30+
- echidnabot - Code quality
31+
- sustainabot - Dependency updates
32+
- glambot - Documentation
33+
- seambot - Integration
34+
- finishbot - Task completion
35+
36+
### Agent Instructions
37+
38+
- `.claude/CLAUDE.md` - Claude-specific patterns (if exists)
39+
- `0-AI-MANIFEST.a2ml` - THIS FILE (universal entry point)
40+
41+
## CORE INVARIANTS
42+
43+
1. **No SCM duplication** - Root must NOT contain STATE.scm, META.scm, etc.
44+
2. **Single source of truth** - `.machine_readable/` is authoritative
45+
3. **No stale metadata** - If root SCMs exist, they are OUT OF DATE
46+
4. **License consistency** - All code PMPL-1.0-or-later unless platform requires MPL-2.0
47+
5. **Author attribution** - Always "Jonathan D.A. Jewell <jonathan.jewell@open.ac.uk>"
48+
49+
## REPOSITORY STRUCTURE
50+
51+
This repo contains:
52+
53+
```
54+
bgp-backbone-lab/
55+
├── 0-AI-MANIFEST.a2ml # THIS FILE (start here)
56+
├── README.md # Project overview
57+
├── [your source files] # Main code
58+
├── .machine_readable/ # SCM files (6 files)
59+
│ ├── STATE.scm
60+
│ ├── META.scm
61+
│ ├── ECOSYSTEM.scm
62+
│ ├── AGENTIC.scm
63+
│ ├── NEUROSYM.scm
64+
│ └── PLAYBOOK.scm
65+
└── .bot_directives/ # Bot instructions
66+
```
67+
68+
## SESSION STARTUP CHECKLIST
69+
70+
Read THIS file (0-AI-MANIFEST.a2ml) first
71+
Understand canonical locations (.machine_readable/, .bot_directives/)
72+
Know the invariants (no SCM duplication, etc.)
73+
Check for MCP enforcement (if applicable)
74+
Read `.machine_readable/STATE.scm` for current status
75+
Read `.machine_readable/AGENTIC.scm` for interaction patterns
76+
77+
## LIFECYCLE HOOKS
78+
79+
### on-enter (Session Start)
80+
81+
When starting a new session:
82+
83+
1. Read and acknowledge this manifest
84+
2. Log session start (optional but recommended)
85+
- Format: `[YYYY-MM-DD HH:MM:SS] Session started: [agent-name]`
86+
- Location: `.machine_readable/session-log.txt`
87+
3. Read `.machine_readable/STATE.scm`
88+
4. Check for blockers
89+
5. State understanding of canonical locations
90+
91+
### on-exit (Session End)
92+
93+
When ending a session:
94+
95+
1. Update `.machine_readable/STATE.scm` if changes made
96+
2. Log session end (optional but recommended)
97+
- Format: `[YYYY-MM-DD HH:MM:SS] Session ended: [summary]`
98+
- Location: `.machine_readable/session-log.txt`
99+
3. Document new blockers
100+
4. Summarize outcomes
101+
102+
## ATTESTATION PROOF
103+
104+
After reading this file, demonstrate understanding by stating:
105+
106+
**"I have read the AI manifest. SCM files are located in `.machine_readable/` ONLY, bot directives in `.bot_directives/`, and I will not create duplicate files in the root directory."**
107+
108+
## META
109+
110+
- **Format Version:** 1.0.0
111+
- **Created:** 2026-02-08
112+
- **Maintained By:** Jonathan D.A. Jewell
113+
- **License:** PMPL-1.0-or-later
114+
- **Protocol:** https://github.com/hyperpolymath/0-ai-gatekeeper-protocol

0 commit comments

Comments
 (0)