Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .bot_directives/README.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
;; SPDX-License-Identifier: PMPL-1.0-or-later
;; .bot_directives — per-bot rules and constraints
;; Media-Type: application/vnd.bot-directives+scm

(bot-directives
(version "1.0")
(notes
"Repo-specific bot constraints."
"Bots must follow these directives in addition to global policies."))
7 changes: 7 additions & 0 deletions .bot_directives/echidnabot.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
;; SPDX-License-Identifier: PMPL-1.0-or-later
(bot-directive
(bot "echidnabot")
(scope "formal verification and fuzzing")
(allow ("analysis" "fuzzing" "proof checks"))
(deny ("write to core modules" "write to bindings"))
(notes "May open findings; code changes require explicit approval"))
7 changes: 7 additions & 0 deletions .bot_directives/finishbot.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
;; SPDX-License-Identifier: PMPL-1.0-or-later
(bot-directive
(bot "finishbot")
(scope "release readiness")
(allow ("release checklists" "docs updates" "metadata fixes"))
(deny ("code changes without approval"))
(notes "Focus on polish, licensing, and packaging"))
7 changes: 7 additions & 0 deletions .bot_directives/glambot.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
;; SPDX-License-Identifier: PMPL-1.0-or-later
(bot-directive
(bot "glambot")
(scope "presentation + accessibility")
(allow ("docs" "readme badges" "ui/accessibility suggestions"))
(deny ("logic changes"))
(notes "Edits limited to presentation layers"))
7 changes: 7 additions & 0 deletions .bot_directives/rhodibot.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
;; SPDX-License-Identifier: PMPL-1.0-or-later
(bot-directive
(bot "rhodibot")
(scope "rsr-compliance")
(allow ("metadata" "docs" "repo-structure checks"))
(deny ("destructive edits without approval"))
(notes "Auto-fix allowed only for formatting in docs and metadata"))
7 changes: 7 additions & 0 deletions .bot_directives/robot-repo-automaton.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
;; SPDX-License-Identifier: PMPL-1.0-or-later
(bot-directive
(bot "robot-repo-automaton")
(scope "automated fixes")
(allow ("low-risk automated edits"))
(deny ("core logic changes without approval"))
(notes "Only apply fixes backed by explicit rule approval"))
7 changes: 7 additions & 0 deletions .bot_directives/seambot.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
;; SPDX-License-Identifier: PMPL-1.0-or-later
(bot-directive
(bot "seambot")
(scope "integration health")
(allow ("analysis" "contract checks" "docs updates"))
(deny ("code changes without approval"))
(notes "May add integration test suggestions"))
7 changes: 7 additions & 0 deletions .bot_directives/sustainabot.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
;; SPDX-License-Identifier: PMPL-1.0-or-later
(bot-directive
(bot "sustainabot")
(scope "eco/economic standards")
(allow ("analysis" "reporting" "docs updates"))
(deny ("code changes without approval"))
(notes "Focus on measurement and recommendations"))
2 changes: 1 addition & 1 deletion .github/workflows/quality.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ jobs:
find . -type f -size +1M -not -path "./.git/*" | head -10 || echo "No large files"

- name: EditorConfig check
uses: editorconfig-checker/action-editorconfig-checker@4b6cd6190d435e7e084fb35e36a096e98506f7b9 # v2.1.0
uses: editorconfig-checker/action-editorconfig-checker@840e866d93b8e032123c23bac69dece044d4d84c # v2.2.0
continue-on-error: true

docs:
Expand Down
11 changes: 11 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -77,3 +77,14 @@ htmlcov/
/tmp/
*.tmp
*.bak

# Crash recovery artifacts
ai-cli-crash-capture/
target/
node_modules/
_build/
deps/
.elixir_ls/
.cache/
build/
dist/
26 changes: 7 additions & 19 deletions .machine_readable/ECOSYSTEM.scm
Original file line number Diff line number Diff line change
@@ -1,20 +1,8 @@
;; SPDX-License-Identifier: PMPL-1.0-or-later
;; ECOSYSTEM.scm - Ecosystem position for bgp-backbone-lab
;; Media-Type: application/vnd.ecosystem+scm

(ecosystem
(version "1.0")
(name "bgp-backbone-lab")
(type "")
(purpose "")

(position-in-ecosystem
(category "")
(subcategory "")
(unique-value ()))

(related-projects ())

(what-this-is ())

(what-this-is-not ()))
(ecosystem (metadata (version "0.2.0") (last-updated "2026-02-08"))
(project (name "bgp-backbone-lab") (purpose "eBGP backbone simulation with containerlab") (role network-lab))
(flatracoon-integration
(parent "flatracoon/netstack")
(layer network)
(depended-on-by ())
(depends-on ())))
114 changes: 114 additions & 0 deletions 0-AI-MANIFEST.a2ml
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
# STOP - CRITICAL READING REQUIRED

**THIS FILE MUST BE READ FIRST BY ALL AI AGENTS**

## WHAT IS THIS?

This is the AI manifest for **bgp-backbone-lab**. It declares:
- Canonical file locations (where things MUST be, and nowhere else)
- Critical invariants (rules that must NEVER be violated)
- Repository structure and organization

## CANONICAL LOCATIONS (UNIVERSAL RULE)

### Machine-Readable Metadata: `.machine_readable/` ONLY

These 6 SCM files MUST exist in `.machine_readable/` directory ONLY:
1. **STATE.scm** - Project state, progress, blockers
2. **META.scm** - Architecture decisions, governance
3. **ECOSYSTEM.scm** - Position in ecosystem, relationships
4. **AGENTIC.scm** - AI agent interaction patterns
5. **NEUROSYM.scm** - Neurosymbolic integration config
6. **PLAYBOOK.scm** - Operational runbook

**CRITICAL:** If ANY of these files exist in the root directory, this is an ERROR.

### Bot Directives: `.bot_directives/` ONLY

Bot-specific instructions for:
- rhodibot - Git operations
- echidnabot - Code quality
- sustainabot - Dependency updates
- glambot - Documentation
- seambot - Integration
- finishbot - Task completion

### Agent Instructions

- `.claude/CLAUDE.md` - Claude-specific patterns (if exists)
- `0-AI-MANIFEST.a2ml` - THIS FILE (universal entry point)

## CORE INVARIANTS

1. **No SCM duplication** - Root must NOT contain STATE.scm, META.scm, etc.
2. **Single source of truth** - `.machine_readable/` is authoritative
3. **No stale metadata** - If root SCMs exist, they are OUT OF DATE
4. **License consistency** - All code PMPL-1.0-or-later unless platform requires MPL-2.0
5. **Author attribution** - Always "Jonathan D.A. Jewell <jonathan.jewell@open.ac.uk>"

## REPOSITORY STRUCTURE

This repo contains:

```
bgp-backbone-lab/
├── 0-AI-MANIFEST.a2ml # THIS FILE (start here)
├── README.md # Project overview
├── [your source files] # Main code
├── .machine_readable/ # SCM files (6 files)
│ ├── STATE.scm
│ ├── META.scm
│ ├── ECOSYSTEM.scm
│ ├── AGENTIC.scm
│ ├── NEUROSYM.scm
│ └── PLAYBOOK.scm
└── .bot_directives/ # Bot instructions
```

## SESSION STARTUP CHECKLIST

Read THIS file (0-AI-MANIFEST.a2ml) first
Understand canonical locations (.machine_readable/, .bot_directives/)
Know the invariants (no SCM duplication, etc.)
Check for MCP enforcement (if applicable)
Read `.machine_readable/STATE.scm` for current status
Read `.machine_readable/AGENTIC.scm` for interaction patterns

## LIFECYCLE HOOKS

### on-enter (Session Start)

When starting a new session:

1. Read and acknowledge this manifest
2. Log session start (optional but recommended)
- Format: `[YYYY-MM-DD HH:MM:SS] Session started: [agent-name]`
- Location: `.machine_readable/session-log.txt`
3. Read `.machine_readable/STATE.scm`
4. Check for blockers
5. State understanding of canonical locations

### on-exit (Session End)

When ending a session:

1. Update `.machine_readable/STATE.scm` if changes made
2. Log session end (optional but recommended)
- Format: `[YYYY-MM-DD HH:MM:SS] Session ended: [summary]`
- Location: `.machine_readable/session-log.txt`
3. Document new blockers
4. Summarize outcomes

## ATTESTATION PROOF

After reading this file, demonstrate understanding by stating:

**"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."**

## META

- **Format Version:** 1.0.0
- **Created:** 2026-02-08
- **Maintained By:** Jonathan D.A. Jewell
- **License:** PMPL-1.0-or-later
- **Protocol:** https://github.com/hyperpolymath/0-ai-gatekeeper-protocol
39 changes: 0 additions & 39 deletions ai-cli-crash-capture/README.adoc

This file was deleted.

7 changes: 0 additions & 7 deletions ai-cli-crash-capture/bash/recoverer.sh

This file was deleted.

Loading
Loading