755 lines
22 KiB
Markdown
755 lines
22 KiB
Markdown
# Sprint: Documentation Parity - Content Organization & Consolidation
|
|
|
|
**Sprint Date:** 2026-02-08 (Saturday)
|
|
**Archive After:** 2026-02-15 (Saturday) [+7 days]
|
|
**Sprint Focus:** Organize 73 MD files, consolidate duplicates, create MCP resources, and enable full-text search
|
|
**Priority:** P2 (Medium)
|
|
**Estimated Effort:** 8-10 hours
|
|
**Status:** PENDING
|
|
|
|
---
|
|
|
|
## SAFETY PROTOCOLS (MANDATORY)
|
|
|
|
### Pre-Execution Safety Checks
|
|
|
|
| Check | Requirement | Verify |
|
|
|-------|-------------|--------|
|
|
| **READ FIRST** | NEVER edit a file without reading it first | [ ] |
|
|
| **SCOPE LOCK** | Only modify files explicitly in scope | [ ] |
|
|
| **NO FEATURE CREEP** | Do NOT add features or "improve" unrelated code | [ ] |
|
|
| **PRODUCTION FIRST** | Production code created BEFORE test code | [ ] |
|
|
| **TEST/PROD SEPARATION** | Test infrastructure is separate from production | [ ] |
|
|
| **ASK IF UNCERTAIN** | If test/production boundary unclear, ask user | [ ] |
|
|
| **BACKUP AWARENESS** | Know the rollback command before editing | [ ] |
|
|
| **TEST BEFORE COMMIT** | All tests must pass before committing | [ ]
|
|
|
|
### Guardrails Reference
|
|
|
|
Full guardrails: [docs/AGENT_GUARDRAILS.md](../AGENT_GUARDRAILS.md)
|
|
|
|
---
|
|
|
|
## PROBLEM STATEMENT
|
|
|
|
The documentation system has grown organically with 73+ markdown files across multiple directories, leading to:
|
|
|
|
1. **Duplicate content** - "Four Laws" appear in 8+ locations (AGENT_GUARDRAILS.md, four-laws.md, skills/, etc.)
|
|
2. **Scattered actionable rules** - 25+ rules embedded in prose need database migration
|
|
3. **Missing MCP resources** - Critical docs not accessible via MCP protocol
|
|
4. **No full-text search** - Documents exist but can't be searched
|
|
5. **Oversized documents** - 5 files exceed 500-line limit per MODULAR_DOCUMENTATION.md
|
|
|
|
**Root Cause:** Documentation grew incrementally without consolidation or indexing strategy.
|
|
|
|
**Where:** Primarily `docs/`, `skills/`, `.guardrails/` directories
|
|
|
|
---
|
|
|
|
## SCOPE BOUNDARY
|
|
|
|
```
|
|
IN SCOPE (may modify):
|
|
- Files: docs/**/*.md (organize, consolidate)
|
|
Change: Merge duplicates, update cross-references
|
|
|
|
- File: INDEX_MAP.md
|
|
Lines: Update with new organization
|
|
Change: Add new entries, fix paths
|
|
|
|
- File: HEADER_MAP.md
|
|
Lines: Update section references
|
|
Change: Fix line numbers after consolidation
|
|
|
|
- File: mcp-server/internal/mcp/resources_extended.go (if exists)
|
|
Lines: Add document resource handlers
|
|
Change: Implement doc resources
|
|
|
|
- Directory: .guardrails/prevention-rules/
|
|
Change: Add rules extracted from docs
|
|
|
|
- Database: documents table
|
|
Change: Index all docs for full-text search
|
|
|
|
OUT OF SCOPE (DO NOT TOUCH):
|
|
- Core guardrail content (keep meaning, fix duplication only)
|
|
- API code implementations
|
|
- Database schema (use existing tables)
|
|
- Test files
|
|
- Non-documentation files
|
|
```
|
|
|
|
---
|
|
|
|
## EXECUTION DIRECTIONS
|
|
|
|
### Overview
|
|
|
|
```
|
|
TASK SEQUENCE:
|
|
|
|
STEP 1: Document inventory
|
|
- Count and catalog all 73 MD files
|
|
- Identify duplicates
|
|
- Map cross-references
|
|
- - - - - - - - - - - - - - - - - - > Understand current state
|
|
|
|
|
v
|
|
STEP 2: Consolidate Four Laws
|
|
- Find all 8+ occurrences
|
|
- Create canonical version
|
|
- Update references
|
|
- - - - - - - - - - - - - - - - - - > Eliminate duplication
|
|
|
|
|
v
|
|
STEP 3: Extract actionable rules
|
|
- Identify 25+ embedded rules
|
|
- Convert to prevention-rules/ JSON
|
|
- Update docs to reference rules
|
|
- - - - - - - - - - - - - - - - - - > Make rules actionable
|
|
|
|
|
v
|
|
STEP 4: Create MCP resources
|
|
- Add document resources to MCP server
|
|
- Implement full-text search endpoint
|
|
- - - - - - - - - - - - - - - - - - > Enable agent access
|
|
|
|
|
v
|
|
STEP 5: Index for search
|
|
- Ingest all docs to database
|
|
- Generate embeddings (if configured)
|
|
- Verify search works
|
|
- - - - - - - - - - - - - - - - - - > Enable discovery
|
|
|
|
|
v
|
|
STEP 6: Split oversized documents
|
|
- Identify 5 files >500 lines
|
|
- Split per MODULAR_DOCUMENTATION.md
|
|
- Update INDEX_MAP and HEADER_MAP
|
|
- - - - - - - - - - - - - - - - - - > Meet standards
|
|
|
|
|
v
|
|
STEP 7: Update navigation maps
|
|
- Refresh INDEX_MAP.md
|
|
- Refresh HEADER_MAP.md
|
|
- Fix all broken links
|
|
- - - - - - - - - - - - - - - - - - > Keep nav current
|
|
|
|
|
v
|
|
STEP 8: Verify and commit
|
|
- Test all links
|
|
- Verify MCP resources
|
|
- Run search tests
|
|
- - - - - - - - - - - - - - - - - - > Validate changes
|
|
|
|
|
v
|
|
DONE: Commit and report - - - - - - - - > Summary to user
|
|
```
|
|
|
|
---
|
|
|
|
## STEP-BY-STEP EXECUTION
|
|
|
|
### STEP 1: Document Inventory
|
|
|
|
**Action:** Catalog all markdown files and identify duplicates
|
|
|
|
```bash
|
|
# Find all markdown files
|
|
find . -name "*.md" -not -path "./.git/*" -not -path "./mcp-server/*" | wc -l
|
|
find . -name "*.md" -not -path "./.git/*" -not -path "./mcp-server/*" > /tmp/doc_inventory.txt
|
|
|
|
# Check line counts (identify oversized)
|
|
find . -name "*.md" -not -path "./.git/*" -exec wc -l {} \; | sort -n | tail -10
|
|
|
|
# Find "Four Laws" occurrences
|
|
grep -r "Four Laws" --include="*.md" .
|
|
grep -r "Law 1" --include="*.md" . | head -20
|
|
|
|
# Find "Halt Conditions" occurrences
|
|
grep -r "Halt Conditions" --include="*.md" .
|
|
```
|
|
|
|
**Expected Files to Review:**
|
|
- docs/AGENT_GUARDRAILS.md (likely contains Four Laws)
|
|
- skills/shared-prompts/four-laws.md (canonical)
|
|
- skills/shared-prompts/halt-conditions.md (canonical)
|
|
- .guardrails/pre-work-check.md
|
|
- docs/workflows/*.md (may reference)
|
|
|
|
**Checkpoint:**
|
|
- [ ] Complete file list created
|
|
- [ ] Duplicates identified
|
|
- [ ] Oversized files (>500 lines) noted
|
|
|
|
**Decision Point:**
|
|
- [ ] Success → Proceed to STEP 2
|
|
- [ ] Failure → HALT and report
|
|
|
|
---
|
|
|
|
### STEP 2: Consolidate Four Laws
|
|
|
|
**Action:** Create single canonical source and update references
|
|
|
|
**Current State Analysis:**
|
|
- Canonical source: `skills/shared-prompts/four-laws.md` (120 lines)
|
|
- Duplicates likely in:
|
|
- docs/AGENT_GUARDRAILS.md (lines 39-61)
|
|
- Possibly docs/workflows/ files
|
|
- Possibly examples/ documentation
|
|
|
|
**Changes to Make:**
|
|
|
|
1. **Verify canonical version** is complete at `skills/shared-prompts/four-laws.md`
|
|
|
|
2. **Update docs/AGENT_GUARDRAILS.md:**
|
|
- Replace Four Laws content with reference:
|
|
```markdown
|
|
### The Four Laws of Agent Safety
|
|
|
|
See [skills/shared-prompts/four-laws.md](../skills/shared-prompts/four-laws.md) for the complete Four Laws.
|
|
|
|
Quick reference:
|
|
1. **Read Before Editing** - Never modify code without reading first
|
|
2. **Stay in Scope** - Only touch authorized files
|
|
3. **Verify Before Committing** - Test all changes
|
|
4. **Halt When Uncertain** - Ask instead of guessing
|
|
```
|
|
|
|
3. **Update other occurrences** to reference the canonical file
|
|
|
|
**Decision Point:**
|
|
- [ ] Success → Proceed to STEP 3
|
|
- [ ] Failure → ROLLBACK and report
|
|
|
|
---
|
|
|
|
### STEP 3: Extract Actionable Rules
|
|
|
|
**Action:** Convert embedded rules to prevention-rules format
|
|
|
|
**Read:** `.guardrails/prevention-rules/pattern-rules.json`
|
|
|
|
**Current format:**
|
|
```json
|
|
{
|
|
"rules": [
|
|
{
|
|
"id": "PREVENT-001",
|
|
"pattern": "git push --force",
|
|
"message": "Force push is not allowed",
|
|
"severity": "error",
|
|
"category": "git"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
**Rules to Extract from AGENT_GUARDRAILS.md:**
|
|
|
|
| Rule | Source | Pattern | Severity |
|
|
|------|--------|---------|----------|
|
|
| NO-FORCE-PUSH | Git Safety | `git push --force` | error |
|
|
| NO-AMEND | Git Safety | `git commit --amend` | warning |
|
|
| NO-CONFIG-CHANGE | Git Safety | `git config` | error |
|
|
| NO-RESET-HARD | Git Safety | `git reset --hard` | error |
|
|
| NO-RM-RF | Forbidden | `rm -rf /` | critical |
|
|
| NO-SECRETS | Code Safety | regex for keys | critical |
|
|
|
|
**Create new rules file:** `.guardrails/prevention-rules/extracted-rules.json`
|
|
|
|
```json
|
|
{
|
|
"version": "1.0",
|
|
"source": "AGENT_GUARDRAILS.md",
|
|
"rules": [
|
|
{
|
|
"id": "PREVENT-GIT-001",
|
|
"name": "No Force Push",
|
|
"pattern": "git\\s+push\\s+--force(?!-with-lease)",
|
|
"message": "Force push without lease is prohibited by guardrails",
|
|
"severity": "error",
|
|
"category": "git",
|
|
"suggestion": "Use 'git push --force-with-lease' instead"
|
|
},
|
|
{
|
|
"id": "PREVENT-GIT-002",
|
|
"name": "No Hard Reset",
|
|
"pattern": "git\\s+reset\\s+--hard",
|
|
"message": "Hard reset can destroy uncommitted work",
|
|
"severity": "error",
|
|
"category": "git",
|
|
"suggestion": "Use 'git stash' or commit changes first"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
**Decision Point:**
|
|
- [ ] Success → Proceed to STEP 4
|
|
- [ ] Failure → ROLLBACK and report
|
|
|
|
---
|
|
|
|
### STEP 4: Create MCP Resources for Documentation
|
|
|
|
**Action:** Add document resources to MCP server (if tools_extended.go exists)
|
|
|
|
**Add to `mcp-server/internal/mcp/resources_extended.go`:**
|
|
|
|
```go
|
|
// Document resources for full guardrail framework access
|
|
func (s *MCPServer) registerDocumentResources() {
|
|
// Register document resources
|
|
s.mcpServer.RegisterResource("guardrail://docs/agent-guardrails", s.readAgentGuardrailsResource)
|
|
s.mcpServer.RegisterResource("guardrail://docs/four-laws", s.readFourLawsResource)
|
|
s.mcpServer.RegisterResource("guardrail://docs/halt-conditions", s.readHaltConditionsResource)
|
|
s.mcpServer.RegisterResource("guardrail://docs/pre-work-checklist", s.readPreWorkChecklistResource)
|
|
s.mcpServer.RegisterResource("guardrail://docs/workflows", s.readWorkflowsIndexResource)
|
|
s.mcpServer.RegisterResource("guardrail://docs/standards", s.readStandardsIndexResource)
|
|
s.mcpServer.RegisterResource("guardrail://docs/search", s.readSearchDocsResource)
|
|
}
|
|
|
|
func (s *MCPServer) readAgentGuardrailsResource(ctx context.Context, uri string) (*mcp.ReadResourceResult, error) {
|
|
content, err := os.ReadFile("docs/AGENT_GUARDRAILS.md")
|
|
if err != nil {
|
|
return nil, fmt.Errorf("failed to read agent guardrails: %w", err)
|
|
}
|
|
return &mcp.ReadResourceResult{
|
|
Contents: []mcp.ResourceContents{
|
|
mcp.TextResourceContents{
|
|
URI: uri,
|
|
MIMEType: "text/markdown",
|
|
Text: string(content),
|
|
},
|
|
},
|
|
}, nil
|
|
}
|
|
|
|
// Implement other resource handlers...
|
|
```
|
|
|
|
**Add to `mcp-server/internal/mcp/server.go`:**
|
|
|
|
```go
|
|
// In registerTools(), add resource registrations
|
|
s.registerDocumentResources()
|
|
```
|
|
|
|
**Decision Point:**
|
|
- [ ] Success → Proceed to STEP 5
|
|
- [ ] Failure → ROLLBACK and report
|
|
|
|
---
|
|
|
|
### STEP 5: Index Documents for Search
|
|
|
|
**Action:** Ingest all documentation to database for full-text search
|
|
|
|
**Create ingestion script:** `scripts/ingest_docs.go`
|
|
|
|
```go
|
|
package main
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"os"
|
|
"path/filepath"
|
|
"strings"
|
|
|
|
"github.com/thearchitectit/guardrail-mcp/internal/database"
|
|
)
|
|
|
|
func main() {
|
|
ctx := context.Background()
|
|
|
|
// Connect to database
|
|
db, err := database.Connect()
|
|
if err != nil {
|
|
fmt.Fprintf(os.Stderr, "Failed to connect: %v\n", err)
|
|
os.Exit(1)
|
|
}
|
|
defer db.Close()
|
|
|
|
docStore := database.NewDocumentStore(db)
|
|
|
|
// Walk docs directory
|
|
err = filepath.Walk("docs", func(path string, info os.FileInfo, err error) error {
|
|
if err != nil || info.IsDir() || !strings.HasSuffix(path, ".md") {
|
|
return err
|
|
}
|
|
|
|
content, err := os.ReadFile(path)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
// Extract title from first h1
|
|
title := extractTitle(string(content))
|
|
slug := slugify(filepath.Base(path, ".md"))
|
|
category := categorize(path)
|
|
|
|
// Create or update document
|
|
doc := &models.Document{
|
|
Slug: slug,
|
|
Title: title,
|
|
Content: string(content),
|
|
Category: category,
|
|
Path: path,
|
|
Version: 1,
|
|
}
|
|
|
|
err = docStore.Create(ctx, doc)
|
|
if err != nil {
|
|
fmt.Printf("Failed to ingest %s: %v\n", path, err)
|
|
} else {
|
|
fmt.Printf("Ingested: %s\n", path)
|
|
}
|
|
|
|
return nil
|
|
})
|
|
|
|
if err != nil {
|
|
fmt.Fprintf(os.Stderr, "Walk failed: %v\n", err)
|
|
os.Exit(1)
|
|
}
|
|
}
|
|
```
|
|
|
|
**Run ingestion:**
|
|
```bash
|
|
cd mcp-server
|
|
go run ../scripts/ingest_docs.go
|
|
```
|
|
|
|
**Decision Point:**
|
|
- [ ] Success → Proceed to STEP 6
|
|
- [ ] Failure → ROLLBACK and report
|
|
|
|
---
|
|
|
|
### STEP 6: Split Oversized Documents
|
|
|
|
**Action:** Identify and split files >500 lines per MODULAR_DOCUMENTATION.md
|
|
|
|
**Check file sizes:**
|
|
```bash
|
|
find docs -name "*.md" -exec wc -l {} \; | awk '$1 > 500 {print $2, $1}'
|
|
```
|
|
|
|
**Likely oversized files:**
|
|
- docs/AGENT_GUARDRAILS.md (~320 lines - OK)
|
|
- docs/workflows/AGENT_EXECUTION.md (~380 lines - OK)
|
|
- docs/workflows/REGRESSION_PREVENTION.md (~330 lines - OK)
|
|
- docs/standards/TEST_PRODUCTION_SEPARATION.md (~350 lines - OK)
|
|
- docs/standards/ADVERSARIAL_TESTING.md (~280 lines - OK)
|
|
|
|
*Note: Based on earlier reads, files may already comply. Verify with `wc -l`.*
|
|
|
|
**If any files exceed 500 lines:**
|
|
|
|
1. **Read the file** to understand structure
|
|
2. **Identify logical split points** (sections)
|
|
3. **Create part files:**
|
|
- `original.md` → keep part 1 + index
|
|
- `original-part2.md` → remaining content
|
|
4. **Update INDEX_MAP.md** and **HEADER_MAP.md**
|
|
|
|
**Example split pattern:**
|
|
```markdown
|
|
# Original Document
|
|
|
|
> Part 1 of 2. See [Part 2](original-part2.md).
|
|
|
|
## Section 1
|
|
...
|
|
|
|
## Section 2
|
|
...
|
|
|
|
---
|
|
|
|
**Next:** [Original Document - Part 2](original-part2.md)
|
|
```
|
|
|
|
**Decision Point:**
|
|
- [ ] Success → Proceed to STEP 7
|
|
- [ ] Failure → ROLLBACK and report
|
|
|
|
---
|
|
|
|
### STEP 7: Update Navigation Maps
|
|
|
|
**Action:** Refresh INDEX_MAP.md and HEADER_MAP.md
|
|
|
|
**Read current:** `INDEX_MAP.md`, `HEADER_MAP.md`
|
|
|
|
**Updates needed:**
|
|
1. Add new document entries
|
|
2. Fix any broken cross-references
|
|
3. Update line numbers in HEADER_MAP.md
|
|
4. Add new categories if needed
|
|
|
|
**Check for broken links:**
|
|
```bash
|
|
# Find all markdown links
|
|
grep -rE "\[.*\]\(.*\.md\)" docs/ --include="*.md" | grep -v "http"
|
|
|
|
# Check if referenced files exist
|
|
# (manual verification)
|
|
```
|
|
|
|
**Update INDEX_MAP.md:**
|
|
- Add new prevention-rules section
|
|
- Add MCP resources section
|
|
- Update document counts
|
|
|
|
**Update HEADER_MAP.md:**
|
|
- Recalculate section line numbers
|
|
- Add new file entries
|
|
- Remove deleted/moved entries
|
|
|
|
**Decision Point:**
|
|
- [ ] Success → Proceed to STEP 8
|
|
- [ ] Failure → ROLLBACK and report
|
|
|
|
---
|
|
|
|
### STEP 8: Verify and Commit
|
|
|
|
**Action:** Final verification and commit
|
|
|
|
```bash
|
|
# Verify all files are valid markdown
|
|
find docs -name "*.md" -exec markdownlint {} \; 2>&1 | head -20
|
|
|
|
# Verify Go code compiles
|
|
cd mcp-server && go build ./...
|
|
|
|
# Run tests
|
|
go test ./...
|
|
|
|
# Check for broken internal links
|
|
# (grep for .md references and verify existence)
|
|
|
|
# Test MCP resources (if server running)
|
|
curl http://localhost:8080/mcp/v1/sse &
|
|
# Then test resource reads
|
|
```
|
|
|
|
**Verification Checklist:**
|
|
- [ ] All markdown files valid
|
|
- [ ] No files >500 lines
|
|
- [ ] INDEX_MAP.md updated
|
|
- [ ] HEADER_MAP.md updated
|
|
- [ ] MCP resources registered
|
|
- [ ] Prevention rules extracted
|
|
- [ ] Documents indexed in DB
|
|
- [ ] Server builds successfully
|
|
|
|
**Decision Point:**
|
|
- [ ] Success → Proceed to DONE
|
|
- [ ] Failure → Fix issues and re-run
|
|
|
|
---
|
|
|
|
### DONE: Commit and Report
|
|
|
|
**Action:** Provide completion summary
|
|
|
|
```bash
|
|
# Stage all changes
|
|
git add docs/
|
|
git add skills/
|
|
git add .guardrails/prevention-rules/
|
|
git add INDEX_MAP.md
|
|
git add HEADER_MAP.md
|
|
git add mcp-server/internal/mcp/resources_extended.go
|
|
git add scripts/ingest_docs.go
|
|
|
|
# Commit
|
|
git commit -m "docs: consolidate documentation and enable MCP access
|
|
|
|
- Consolidate Four Laws to canonical source (skills/shared-prompts/four-laws.md)
|
|
- Extract 25+ actionable rules to prevention-rules/
|
|
- Add MCP resources for all critical documentation
|
|
- Index 73 documents for full-text search
|
|
- Split oversized documents (>500 lines)
|
|
- Update INDEX_MAP.md and HEADER_MAP.md
|
|
|
|
Authored by TheArchitectit"
|
|
```
|
|
|
|
**REPORT FORMAT:**
|
|
|
|
## Sprint Complete: Documentation Parity
|
|
|
|
**Status:** SUCCESS
|
|
**Files Modified:**
|
|
- docs/AGENT_GUARDRAILS.md (consolidated Four Laws reference)
|
|
- INDEX_MAP.md (updated)
|
|
- HEADER_MAP.md (updated)
|
|
- .guardrails/prevention-rules/extracted-rules.json (NEW)
|
|
- mcp-server/internal/mcp/resources_extended.go (enhanced)
|
|
- scripts/ingest_docs.go (NEW)
|
|
|
|
**Commit Hash:** [hash]
|
|
|
|
### Changes Made:
|
|
- Consolidated duplicate "Four Laws" content across 8+ locations
|
|
- Extracted 25+ embedded rules to actionable JSON format
|
|
- Added 7 new MCP resources for documentation access
|
|
- Indexed 73 documents for full-text search
|
|
- Verified all files meet 500-line limit
|
|
- Updated navigation maps
|
|
|
|
### Verification Results:
|
|
- Document count: 73 files indexed
|
|
- Duplicate elimination: 8→1 canonical sources
|
|
- Rules extracted: 25+ actionable rules
|
|
- MCP resources: 7 new resources
|
|
- Search: Full-text enabled
|
|
- Build: PASSED
|
|
|
|
### Next Steps:
|
|
- Deploy updated server for MCP resource access
|
|
- Run ingestion script in production
|
|
- Update agent configurations to use new resources
|
|
|
|
---
|
|
|
|
## COMPLETION GATE (MANDATORY)
|
|
|
|
**This section MUST be completed before marking the sprint done.**
|
|
|
|
### Validation Loop Rules
|
|
|
|
```
|
|
MAX_CYCLES: 3
|
|
MAX_TIME: 30 minutes
|
|
EXIT_CONDITIONS:
|
|
- All BLOCKING items pass, OR
|
|
- MAX_CYCLES reached (report blockers), OR
|
|
- MAX_TIME exceeded (report status)
|
|
```
|
|
|
|
### Core Validation Checklist
|
|
|
|
| Check | Command | Pass Condition | Blocking? | Status |
|
|
|-------|---------|----------------|-----------|--------|
|
|
| **Files Saved** | `git status` | No unexpected untracked files | YES | [ ] |
|
|
| **Changes Staged** | `git diff --cached --stat` | Target files staged | YES | [ ] |
|
|
| **Syntax Valid** | `go build ./cmd/server` | Exit code 0 | YES | [ ] |
|
|
| **Tests Pass** | `go test ./...` | Exit code 0 | YES | [ ] |
|
|
| **No >500 Line Files** | `find docs -name "*.md" -exec wc -l {} \;` | Max <500 | YES | [ ] |
|
|
| **INDEX_MAP Updated** | Manual check | New entries added | YES | [ ] |
|
|
| **Committed** | `git log -1 --oneline` | Shows sprint commit | YES | [ ] |
|
|
| **No Secrets** | `git diff --cached` | No API keys, tokens | YES | [ ] |
|
|
|
|
**Cycle:** ___ / 3
|
|
**Time Started:** ___:___
|
|
**Current Status:** VALIDATING | PASSED | BLOCKED | TIMEOUT
|
|
|
|
---
|
|
|
|
## ACCEPTANCE CRITERIA
|
|
|
|
| # | Criterion | Test | Pass Condition |
|
|
|---|-----------|------|----------------|
|
|
| 1 | Four Laws consolidated | `grep -c "Four Laws" docs/` | 1 canonical + references only |
|
|
| 2 | Rules extracted | `ls .guardrails/prevention-rules/` | extracted-rules.json exists |
|
|
| 3 | MCP resources added | Check `resources_extended.go` | 7+ handlers |
|
|
| 4 | Documents indexed | Query DB | 73+ rows in documents table |
|
|
| 5 | No oversized files | `find docs -name "*.md" -exec wc -l {} \;` | All <500 lines |
|
|
| 6 | INDEX_MAP updated | Manual review | Accurate entries |
|
|
| 7 | Server builds | `go build` | Exit code 0 |
|
|
| 8 | Search works | API test | Returns results |
|
|
|
|
---
|
|
|
|
## ROLLBACK PROCEDURE
|
|
|
|
```bash
|
|
# Immediate rollback - discard all changes
|
|
git checkout HEAD -- docs/AGENT_GUARDRAILS.md
|
|
git checkout HEAD -- INDEX_MAP.md
|
|
git checkout HEAD -- HEADER_MAP.md
|
|
git checkout HEAD -- mcp-server/internal/mcp/resources_extended.go
|
|
rm -f .guardrails/prevention-rules/extracted-rules.json
|
|
rm -f scripts/ingest_docs.go
|
|
|
|
# Verify rollback
|
|
git status
|
|
|
|
# Report to user
|
|
echo "Rollback complete. All doc parity changes removed."
|
|
```
|
|
|
|
---
|
|
|
|
## REFERENCE
|
|
|
|
### Document Locations
|
|
|
|
| Document | Path | Lines (est) |
|
|
|----------|------|-------------|
|
|
| Four Laws (canonical) | skills/shared-prompts/four-laws.md | 120 |
|
|
| Halt Conditions | skills/shared-prompts/halt-conditions.md | 108 |
|
|
| Agent Guardrails | docs/AGENT_GUARDRAILS.md | 320 |
|
|
| Pre-work Checklist | .guardrails/pre-work-check.md | 180 |
|
|
| Test/Production Separation | docs/standards/TEST_PRODUCTION_SEPARATION.md | 350 |
|
|
|
|
### Prevention Rules Format
|
|
|
|
```json
|
|
{
|
|
"id": "PREVENT-XXX",
|
|
"name": "Human readable name",
|
|
"pattern": "regex pattern",
|
|
"message": "Violation message",
|
|
"severity": "error|warning|info",
|
|
"category": "git|bash|security|code",
|
|
"suggestion": "Alternative approach"
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## QUICK REFERENCE CARD
|
|
|
|
```
|
|
+------------------------------------------------------------------+
|
|
| SPRINT QUICK REFERENCE |
|
|
+------------------------------------------------------------------+
|
|
| TARGET FILES: docs/*.md |
|
|
| INDEX_MAP.md |
|
|
| HEADER_MAP.md |
|
|
| .guardrails/prevention-rules/ |
|
|
| mcp-server/internal/mcp/resources_extended.go |
|
|
| CHANGE TYPE: Consolidation, indexing, MCP resources |
|
|
+------------------------------------------------------------------+
|
|
| SAFETY: |
|
|
| - Read before editing |
|
|
| - Keep content meaning intact |
|
|
| - Only fix duplication/split size |
|
|
| - Test before commit |
|
|
+------------------------------------------------------------------+
|
|
| HALT IF: |
|
|
| - Content meaning unclear |
|
|
| - Split would break flow |
|
|
| - Uncertain about rule extraction |
|
|
+------------------------------------------------------------------+
|
|
| ROLLBACK: git checkout HEAD -- <files> |
|
|
| rm -f new_files |
|
|
+------------------------------------------------------------------+
|
|
```
|
|
|
|
---
|
|
|
|
**Created:** 2026-02-08
|
|
**Authored by:** TheArchitectit
|
|
**Archive Date:** 2026-02-15
|
|
**Version:** 1.0
|