tractatus/docs/USER_GUIDE_RULE_MANAGER.md
TheFlow c96ad31046 feat: implement Rule Manager and Project Manager admin systems
Major Features:
- Multi-project governance with Rule Manager web UI
- Project Manager for organizing governance across projects
- Variable substitution system (${VAR_NAME} in rules)
- Claude.md analyzer for instruction extraction
- Rule quality scoring and optimization

Admin UI Components:
- /admin/rule-manager.html - Full-featured rule management interface
- /admin/project-manager.html - Multi-project administration
- /admin/claude-md-migrator.html - Import rules from Claude.md files
- Dashboard enhancements for governance analytics

Backend Implementation:
- Controllers: projects, rules, variables
- Models: Project, VariableValue, enhanced GovernanceRule
- Routes: /api/projects, /api/rules with full CRUD
- Services: ClaudeMdAnalyzer, RuleOptimizer, VariableSubstitution
- Utilities: mongoose helpers

Documentation:
- User guides for Rule Manager and Projects
- Complete API documentation (PROJECTS_API, RULES_API)
- Phase 3 planning and architecture diagrams
- Test results and error analysis
- Coding best practices summary

Testing & Scripts:
- Integration tests for projects API
- Unit tests for variable substitution
- Database migration scripts
- Seed data generation
- Test token generator

Key Capabilities:
 UNIVERSAL scope rules apply across all projects
 PROJECT_SPECIFIC rules override for individual projects
 Variable substitution per-project (e.g., ${DB_PORT} → 27017)
 Real-time validation and quality scoring
 Advanced filtering and search
 Import from existing Claude.md files

Technical Details:
- MongoDB-backed governance persistence
- RESTful API with Express
- JWT authentication for admin endpoints
- CSP-compliant frontend (no inline handlers)
- Responsive Tailwind UI

This implements Phase 3 architecture as documented in planning docs.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-11 17:16:51 +13:00

424 lines
13 KiB
Markdown

# Rule Manager - User Guide
**Multi-Project Governance Manager for Tractatus Framework**
---
## Table of Contents
1. [Overview](#overview)
2. [Getting Started](#getting-started)
3. [Dashboard Tour](#dashboard-tour)
4. [Managing Rules](#managing-rules)
5. [Understanding Rule Properties](#understanding-rule-properties)
6. [Best Practices](#best-practices)
7. [Troubleshooting](#troubleshooting)
---
## Overview
The Rule Manager is a web-based interface for managing governance rules in the Tractatus framework. It replaces the fragile `.claude/instruction-history.json` file with a robust, database-backed solution that supports:
- **Multi-project governance** - Apply rules universally or to specific projects
- **Real-time validation** - Ensure rules meet framework standards
- **Variable substitution** - Use `${VAR_NAME}` for project-specific values
- **Quality scoring** - AI-calculated clarity, specificity, and actionability scores
- **Advanced filtering** - Find rules quickly by scope, quadrant, persistence, etc.
---
## Getting Started
### Accessing the Rule Manager
1. Navigate to `http://localhost:9000/admin/dashboard.html`
2. Log in with your admin credentials
3. Click "🔧 Rule Manager" in the navigation bar
### Initial Setup
The Rule Manager comes pre-populated with 18 existing governance rules migrated from `.claude/instruction-history.json`. You can:
- **View** existing rules to understand their structure
- **Edit** rules to improve clarity or add variables
- **Create** new rules for your project needs
- **Delete** obsolete rules (soft delete by default)
---
## Dashboard Tour
### Statistics Cards
At the top of the page, you'll see four key metrics:
1. **Total Rules** - Count of all active rules
2. **Universal** - Rules that apply to all projects
3. **Validated** - Rules that have passed validation tests
4. **Avg Clarity** - Average clarity score across all rules
### Filters Panel
The filters panel allows you to narrow down the rule list:
- **Scope** - UNIVERSAL (all projects) or PROJECT_SPECIFIC
- **Quadrant** - STRATEGIC, OPERATIONAL, TACTICAL, SYSTEM, STORAGE
- **Persistence** - HIGH (always enforced), MEDIUM, LOW
- **Validation** - PASSED, FAILED, NEEDS_REVIEW, NOT_VALIDATED
- **Status** - Active Only, All, Inactive Only
- **Sort By** - Priority, Clarity Score, Rule ID, Last Updated
### Search Box
Use the search box to perform full-text search across rule text. The search is debounced (500ms delay) to avoid excessive API calls.
### Rules Grid
Each rule is displayed as a card showing:
- **Scope badge** - Blue (Universal) or Gray (Project-Specific)
- **Quadrant badge** - Color-coded by quadrant
- **Persistence badge** - Red (High), Orange (Medium), Yellow (Low)
- **Rule ID** - Unique identifier (inst_xxx)
- **Rule text** - Truncated to 2 lines
- **Priority** - 0-100 scale
- **Variables** - Count of detected `${VARIABLE}` placeholders
- **Enforcements** - Number of times rule was enforced
- **Clarity score** - Visual progress bar (Green ≥80%, Yellow ≥60%, Red <60%)
- **Action buttons** - View, Edit, Delete
### Pagination
Rules are paginated with 20 items per page. Use the pagination controls at the bottom to navigate between pages.
---
## Managing Rules
### Creating a New Rule
1. Click the **"New Rule"** button in the top-right
2. Fill in the required fields:
- **Rule ID** - Unique identifier (e.g., `inst_019`, `inst_020`)
- **Rule Text** - The governance instruction
- Use `${VAR_NAME}` for variables (e.g., `${DB_TYPE}`, `${PROJECT_NAME}`)
- Use strong imperatives: MUST, SHALL, REQUIRED, PROHIBITED
- Avoid weak language: try, maybe, consider, might
- **Quadrant** - Select the appropriate Tractatus quadrant
- **Persistence** - How long this rule should remain active
3. Configure optional settings:
- **Scope** - Universal or Project-Specific
- **Category** - Technical, Content, Security, Privacy, Process, Values, Other
- **Priority** - 0 (low) to 100 (high)
- **Temporal Scope** - Immediate, Session, Project, Permanent
- **Active** - Whether the rule is currently enforced
- **Examples** - Add example scenarios (optional)
- **Notes** - Additional clarifications (optional)
4. Monitor the **Clarity Score Preview** in the right panel
- Adjust your rule text to achieve a higher score
- Green (≥80%) indicates good clarity
5. Click **"Create Rule"**
### Viewing a Rule
1. Click the **"View"** button on any rule card
2. The view modal displays:
- All rule properties
- Quality scores (clarity, specificity, actionability)
- Detected variables
- Metadata (created date, updated date, creator)
3. Click **"Edit Rule"** to switch to edit mode
4. Click **"Close"** to return to the dashboard
### Editing a Rule
1. Click the **"Edit"** button on any rule card
2. Modify any fields (except Rule ID, which is immutable)
3. **Automatic processing:**
- If you change the rule text:
- Variables are re-detected automatically
- Clarity score is recalculated
- Validation status resets to NOT_VALIDATED
- An entry is added to the optimization history
4. Click **"Save Changes"**
**Note:** After saving, the rule manager list refreshes automatically to show your changes.
### Deleting a Rule
1. Click the **"Delete"** button on any rule card
2. Confirm the deletion in the dialog
3. **Soft delete** (default):
- Sets `active: false`
- Preserves all rule data
- Can be reactivated later
4. **Hard delete** (API only):
- Permanently removes the rule
- Use with caution!
- See API documentation for details
**Protection:** The system prevents deletion of UNIVERSAL rules that are in use by multiple projects.
---
## Understanding Rule Properties
### Rule ID
- **Format:** `inst_XXX` where XXX is a number
- **Purpose:** Unique identifier for the rule
- **Immutable:** Cannot be changed after creation
- **Convention:** Start with `inst_001` and increment
### Rule Text
- **Purpose:** The actual governance instruction
- **Variables:** Use `${VAR_NAME}` for project-specific values
- Example: `Database MUST use ${DB_TYPE} on port ${DB_PORT}`
- Variable names must be UPPERCASE with underscores
- Automatically detected and displayed
- **Best practices:**
- Use strong imperatives: MUST, SHALL, REQUIRED, PROHIBITED, NEVER
- Be specific: Include numbers, paths, URLs where applicable
- Avoid vague language: try, maybe, consider, might, probably
- Include context: WHO, WHAT, WHEN, WHERE, WHY
### Scope
- **PROJECT_SPECIFIC** (default)
- Applies only to this project
- No variable substitution needed
- **UNIVERSAL**
- Applies to all projects in your portfolio
- Should use variables for project-specific values
- Example: `MongoDB MUST run on port ${DB_PORT} for ${PROJECT_NAME} database`
### Quadrant
Classification based on the [Tractatus framework](../docs/markdown/core-concepts.md):
- **STRATEGIC** - High-level project goals, architecture decisions, values
- **OPERATIONAL** - Day-to-day workflows, processes, standards
- **TACTICAL** - Specific implementation details, code patterns
- **SYSTEM** - Infrastructure, environments, deployment
- **STORAGE** - Data persistence, state management
### Persistence
How long the rule remains active:
- **HIGH** - Always enforced, never expires, critical rules
- **MEDIUM** - Enforced during project lifecycle, may expire
- **LOW** - Temporary, context-specific, short-term
### Temporal Scope
When the rule applies:
- **PERMANENT** - Forever (default)
- **PROJECT** - Duration of the project
- **SESSION** - Single Claude Code session only
- **IMMEDIATE** - One-time instruction
### Priority
- **Range:** 0 (low) to 100 (high)
- **Default:** 50
- **Purpose:** Determines enforcement order when rules conflict
- **Guidelines:**
- 90-100: Critical infrastructure, security
- 70-89: Important standards, conventions
- 50-69: Standard practices
- 30-49: Preferences
- 0-29: Nice-to-haves
### Category
Helps organize rules:
- **technical** - Code, architecture, implementation
- **content** - Documentation, messages, UX copy
- **security** - Authentication, authorization, data protection
- **privacy** - User data, GDPR compliance
- **process** - Workflows, approvals, reviews
- **values** - Ethical guidelines, mission alignment
- **other** - Doesn't fit other categories
### Clarity Score
- **Range:** 0-100%
- **Calculation:** Heuristic-based (will be improved by AI optimizer in Phase 2)
- **Factors:**
- **-10 points** for each weak word (try, maybe, consider, might, probably, possibly)
- **-10 points** if no strong imperatives (MUST, SHALL, REQUIRED, PROHIBITED)
- **-5 points** if no specificity indicators (numbers, variables)
- **Color coding:**
- **Green (≥80%)** - Good clarity
- **Yellow (60-79%)** - Needs improvement
- **Red (<60%)** - Poor clarity, revise
### Validation Status
- **NOT_VALIDATED** - Has not been tested (default for new/edited rules)
- **PASSED** - Passed all validation tests
- **FAILED** - Failed one or more validation tests
- **NEEDS_REVIEW** - Passed but with warnings
*Note: Validation testing will be implemented in Phase 4*
---
## Best Practices
### Writing High-Quality Rules
1. **Be Specific**
- "Try to use MongoDB"
- "Database MUST use MongoDB on port 27017"
2. **Use Strong Language**
- "Consider adding error handling"
- "All functions MUST include try-catch error handling"
3. **Include Context**
- "Use environment variables"
- "Sensitive credentials MUST be stored in .env files, never in code"
4. **Use Variables for Universal Rules**
- "MongoDB port is 27017" (project-specific)
- "Database MUST use ${DB_TYPE} on port ${DB_PORT}" (universal)
5. **Add Examples**
- Clarify edge cases
- Show concrete scenarios
- Help AI understand intent
6. **Link Related Rules**
- Reference other rules by ID
- Build a rule hierarchy
- Avoid redundancy
### Organizing Your Rules
1. **Start with Infrastructure (SYSTEM quadrant)**
- Database configuration
- Port assignments
- Environment setup
2. **Define Architecture (STRATEGIC quadrant)**
- Tech stack choices
- Design patterns
- Project boundaries
3. **Establish Workflows (OPERATIONAL quadrant)**
- Git conventions
- Testing requirements
- Deployment process
4. **Document Standards (TACTICAL quadrant)**
- Code style
- Naming conventions
- File structure
5. **Set Storage Rules (STORAGE quadrant)**
- Session state management
- Data persistence
- Cache strategies
### Maintaining Rules
- **Regular Reviews:** Quarterly review all rules for relevance
- **Update Obsolete Rules:** Deactivate rules that no longer apply
- **Improve Clarity:** Aim for 80% clarity score on all rules
- **Add Variables:** Convert project-specific rules to universal when reusable
- **Track Changes:** Use optimization history to understand rule evolution
---
## Troubleshooting
### "Failed to load rules" error
**Cause:** API connection issue or authentication failure
**Solutions:**
1. Check that the server is running (`npm start`)
2. Verify your JWT token is valid (re-login if expired)
3. Check browser console for specific error messages
### Rule not appearing after creation
**Cause:** Filters may be hiding the rule
**Solutions:**
1. Click "Clear Filters" button
2. Check the "Status" filter is set to "Active Only"
3. Verify the rule was actually created (check Network tab)
### Clarity score is low
**Cause:** Rule text contains weak language or lacks specificity
**Solutions:**
1. Replace weak words (try, maybe, consider) with strong imperatives (MUST, SHALL)
2. Add numbers, paths, or variables for specificity
3. Use explicit language instead of vague terms
### Cannot delete a rule
**Cause:** Rule is a UNIVERSAL rule in use by multiple projects
**Solution:**
1. Review which projects are using the rule
2. Either keep the rule or remove it from those projects first
3. Alternatively, soft-delete (deactivate) instead of hard-delete
### Variables not detected
**Cause:** Incorrect variable syntax
**Solution:**
- Use `${VAR_NAME}` format (curly braces, uppercase)
- `$VAR_NAME` (missing braces)
- `${var_name}` (lowercase)
- `${VAR_NAME}` (correct)
### Pagination not working
**Cause:** JavaScript error or API failure
**Solutions:**
1. Check browser console for errors
2. Refresh the page
3. Try a different browser
4. Check that JavaScript is enabled
---
## Keyboard Shortcuts
*Coming in future update*
---
## Related Documentation
- **API Reference:** [docs/api/RULES_API.md](../api/RULES_API.md)
- **Core Concepts:** [docs/markdown/core-concepts.md](../markdown/core-concepts.md)
- **Implementation Plan:** [docs/MULTI_PROJECT_GOVERNANCE_IMPLEMENTATION_PLAN.md](../MULTI_PROJECT_GOVERNANCE_IMPLEMENTATION_PLAN.md)
- **Maintenance Guide:** [CLAUDE_Tractatus_Maintenance_Guide.md](../../CLAUDE_Tractatus_Maintenance_Guide.md)
---
## Getting Help
- **GitHub Issues:** Report bugs or request features
- **API Documentation:** See [RULES_API.md](../api/RULES_API.md) for technical details
- **Framework Documentation:** See [core-concepts.md](../markdown/core-concepts.md) for Tractatus theory
---
**Last Updated:** 2025-10-11
**Version:** 1.0.0 (Phase 1 Complete)
**Next Features:** Phase 2 - AI Optimization & CLAUDE.md Migration