@chrisai/base 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +157 -0
- package/bin/install.js +340 -0
- package/package.json +40 -0
- package/src/commands/audit-claude-md.md +31 -0
- package/src/commands/audit.md +33 -0
- package/src/commands/carl-hygiene.md +33 -0
- package/src/commands/groom.md +35 -0
- package/src/commands/history.md +27 -0
- package/src/commands/pulse.md +33 -0
- package/src/commands/scaffold.md +33 -0
- package/src/commands/status.md +28 -0
- package/src/commands/surface-convert.md +35 -0
- package/src/commands/surface-create.md +34 -0
- package/src/commands/surface-list.md +27 -0
- package/src/framework/context/base-principles.md +71 -0
- package/src/framework/frameworks/audit-strategies.md +53 -0
- package/src/framework/frameworks/satellite-registration.md +44 -0
- package/src/framework/tasks/audit-claude-md.md +68 -0
- package/src/framework/tasks/audit.md +64 -0
- package/src/framework/tasks/carl-hygiene.md +160 -0
- package/src/framework/tasks/groom.md +164 -0
- package/src/framework/tasks/history.md +34 -0
- package/src/framework/tasks/pulse.md +83 -0
- package/src/framework/tasks/scaffold.md +167 -0
- package/src/framework/tasks/status.md +35 -0
- package/src/framework/tasks/surface-convert.md +143 -0
- package/src/framework/tasks/surface-create.md +184 -0
- package/src/framework/tasks/surface-list.md +42 -0
- package/src/framework/templates/active-md.md +112 -0
- package/src/framework/templates/backlog-md.md +100 -0
- package/src/framework/templates/state-md.md +48 -0
- package/src/framework/templates/workspace-json.md +50 -0
- package/src/hooks/_template.py +129 -0
- package/src/hooks/active-hook.py +115 -0
- package/src/hooks/backlog-hook.py +107 -0
- package/src/hooks/base-pulse-check.py +206 -0
- package/src/hooks/psmm-injector.py +67 -0
- package/src/hooks/satellite-detection.py +131 -0
- package/src/packages/base-mcp/index.js +108 -0
- package/src/packages/base-mcp/package.json +10 -0
- package/src/packages/base-mcp/tools/surfaces.js +404 -0
- package/src/packages/carl-mcp/index.js +115 -0
- package/src/packages/carl-mcp/package.json +10 -0
- package/src/packages/carl-mcp/tools/decisions.js +269 -0
- package/src/packages/carl-mcp/tools/domains.js +361 -0
- package/src/packages/carl-mcp/tools/psmm.js +204 -0
- package/src/packages/carl-mcp/tools/staging.js +245 -0
- package/src/skill/base.md +111 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: base:history
|
|
3
|
+
description: Workspace evolution timeline
|
|
4
|
+
allowed-tools: [Read, Glob, Bash]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
<objective>
|
|
8
|
+
Show workspace evolution — grooming history, audits, major changes over time.
|
|
9
|
+
|
|
10
|
+
**When to use:** "workspace history", "show evolution", "what's changed".
|
|
11
|
+
</objective>
|
|
12
|
+
|
|
13
|
+
<execution_context>
|
|
14
|
+
@.claude/skills/base/tasks/history.md
|
|
15
|
+
</execution_context>
|
|
16
|
+
|
|
17
|
+
<context>
|
|
18
|
+
@.base/STATE.md
|
|
19
|
+
</context>
|
|
20
|
+
|
|
21
|
+
<process>
|
|
22
|
+
Follow task: @.claude/skills/base/tasks/history.md
|
|
23
|
+
</process>
|
|
24
|
+
|
|
25
|
+
<success_criteria>
|
|
26
|
+
- [ ] Timeline of workspace events displayed
|
|
27
|
+
</success_criteria>
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: base:pulse
|
|
3
|
+
description: Daily workspace health briefing
|
|
4
|
+
allowed-tools: [Read, Glob, Grep, Bash]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
<objective>
|
|
8
|
+
Workspace health briefing — drift score, stale areas, overdue grooming, quick status.
|
|
9
|
+
|
|
10
|
+
**When to use:** Session start, "what's the state of my workspace", daily check-in.
|
|
11
|
+
</objective>
|
|
12
|
+
|
|
13
|
+
<execution_context>
|
|
14
|
+
@.claude/skills/base/tasks/pulse.md
|
|
15
|
+
@.claude/skills/base/context/base-principles.md
|
|
16
|
+
</execution_context>
|
|
17
|
+
|
|
18
|
+
<context>
|
|
19
|
+
$ARGUMENTS
|
|
20
|
+
|
|
21
|
+
@.base/workspace.json
|
|
22
|
+
@.base/STATE.md
|
|
23
|
+
</context>
|
|
24
|
+
|
|
25
|
+
<process>
|
|
26
|
+
Follow task: @.claude/skills/base/tasks/pulse.md
|
|
27
|
+
</process>
|
|
28
|
+
|
|
29
|
+
<success_criteria>
|
|
30
|
+
- [ ] Drift score calculated and displayed
|
|
31
|
+
- [ ] Stale areas identified
|
|
32
|
+
- [ ] Groom cadence checked
|
|
33
|
+
</success_criteria>
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: base:scaffold
|
|
3
|
+
description: Set up BASE in a new workspace
|
|
4
|
+
argument-hint: "[--full]"
|
|
5
|
+
allowed-tools: [Read, Write, Edit, Glob, Bash, AskUserQuestion]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<objective>
|
|
9
|
+
Guided workspace setup — scan, configure, install BASE infrastructure. Optional --full mode adds operational templates.
|
|
10
|
+
|
|
11
|
+
**When to use:** First-time BASE installation, "set up base", "scaffold my workspace".
|
|
12
|
+
</objective>
|
|
13
|
+
|
|
14
|
+
<execution_context>
|
|
15
|
+
@.claude/skills/base/tasks/scaffold.md
|
|
16
|
+
@.claude/skills/base/templates/workspace-json.md
|
|
17
|
+
@.claude/skills/base/templates/state-md.md
|
|
18
|
+
</execution_context>
|
|
19
|
+
|
|
20
|
+
<context>
|
|
21
|
+
$ARGUMENTS
|
|
22
|
+
</context>
|
|
23
|
+
|
|
24
|
+
<process>
|
|
25
|
+
Follow task: @.claude/skills/base/tasks/scaffold.md
|
|
26
|
+
</process>
|
|
27
|
+
|
|
28
|
+
<success_criteria>
|
|
29
|
+
- [ ] .base/ directory structure created
|
|
30
|
+
- [ ] workspace.json generated from scan
|
|
31
|
+
- [ ] STATE.md initialized
|
|
32
|
+
- [ ] Hooks and MCP servers installed (if --full)
|
|
33
|
+
</success_criteria>
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: base:status
|
|
3
|
+
description: Quick workspace health check
|
|
4
|
+
allowed-tools: [Read, Glob, Bash]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
<objective>
|
|
8
|
+
One-liner workspace health status — drift score and area summary.
|
|
9
|
+
|
|
10
|
+
**When to use:** Quick check, "workspace status", "how's my workspace".
|
|
11
|
+
</objective>
|
|
12
|
+
|
|
13
|
+
<execution_context>
|
|
14
|
+
@.claude/skills/base/tasks/status.md
|
|
15
|
+
</execution_context>
|
|
16
|
+
|
|
17
|
+
<context>
|
|
18
|
+
@.base/workspace.json
|
|
19
|
+
@.base/STATE.md
|
|
20
|
+
</context>
|
|
21
|
+
|
|
22
|
+
<process>
|
|
23
|
+
Follow task: @.claude/skills/base/tasks/status.md
|
|
24
|
+
</process>
|
|
25
|
+
|
|
26
|
+
<success_criteria>
|
|
27
|
+
- [ ] Health status displayed
|
|
28
|
+
</success_criteria>
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: base:surface-convert
|
|
3
|
+
description: Convert a markdown file into a data surface
|
|
4
|
+
argument-hint: "<file-path>"
|
|
5
|
+
allowed-tools: [Read, Write, Edit, Glob, Bash, AskUserQuestion]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<objective>
|
|
9
|
+
Convert an existing @-mentioned markdown file into a structured data surface. Analyzes structure, proposes schema, migrates content.
|
|
10
|
+
|
|
11
|
+
**When to use:** User has a markdown file they want to convert to a structured surface.
|
|
12
|
+
</objective>
|
|
13
|
+
|
|
14
|
+
<execution_context>
|
|
15
|
+
@.claude/skills/base/tasks/surface-convert.md
|
|
16
|
+
@.base/hooks/_template.py
|
|
17
|
+
</execution_context>
|
|
18
|
+
|
|
19
|
+
<context>
|
|
20
|
+
$ARGUMENTS
|
|
21
|
+
|
|
22
|
+
@.base/workspace.json
|
|
23
|
+
</context>
|
|
24
|
+
|
|
25
|
+
<process>
|
|
26
|
+
Follow task: @.claude/skills/base/tasks/surface-convert.md
|
|
27
|
+
</process>
|
|
28
|
+
|
|
29
|
+
<success_criteria>
|
|
30
|
+
- [ ] .base/data/{name}.json created with migrated items
|
|
31
|
+
- [ ] .base/hooks/{name}-hook.py created
|
|
32
|
+
- [ ] workspace.json updated with surface registration
|
|
33
|
+
- [ ] settings.json updated with hook entry
|
|
34
|
+
- [ ] Original markdown file preserved
|
|
35
|
+
</success_criteria>
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: base:surface-create
|
|
3
|
+
description: Create a new data surface (guided)
|
|
4
|
+
argument-hint: "[surface-name]"
|
|
5
|
+
allowed-tools: [Read, Write, Edit, Glob, Bash, AskUserQuestion]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<objective>
|
|
9
|
+
Create a new data surface through guided conversation. Generates JSON data file, injection hook, workspace.json registration, and settings.json hook entry.
|
|
10
|
+
|
|
11
|
+
**When to use:** User wants to track something new as a structured data surface.
|
|
12
|
+
</objective>
|
|
13
|
+
|
|
14
|
+
<execution_context>
|
|
15
|
+
@.claude/skills/base/tasks/surface-create.md
|
|
16
|
+
@.base/hooks/_template.py
|
|
17
|
+
</execution_context>
|
|
18
|
+
|
|
19
|
+
<context>
|
|
20
|
+
$ARGUMENTS
|
|
21
|
+
|
|
22
|
+
@.base/workspace.json
|
|
23
|
+
</context>
|
|
24
|
+
|
|
25
|
+
<process>
|
|
26
|
+
Follow task: @.claude/skills/base/tasks/surface-create.md
|
|
27
|
+
</process>
|
|
28
|
+
|
|
29
|
+
<success_criteria>
|
|
30
|
+
- [ ] .base/data/{name}.json created
|
|
31
|
+
- [ ] .base/hooks/{name}-hook.py created
|
|
32
|
+
- [ ] workspace.json updated with surface registration
|
|
33
|
+
- [ ] settings.json updated with hook entry
|
|
34
|
+
</success_criteria>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: base:surface-list
|
|
3
|
+
description: Show all registered data surfaces
|
|
4
|
+
allowed-tools: [Read, Bash]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
<objective>
|
|
8
|
+
Display all registered data surfaces with item counts and hook status.
|
|
9
|
+
|
|
10
|
+
**When to use:** User wants to see what surfaces exist.
|
|
11
|
+
</objective>
|
|
12
|
+
|
|
13
|
+
<execution_context>
|
|
14
|
+
@.claude/skills/base/tasks/surface-list.md
|
|
15
|
+
</execution_context>
|
|
16
|
+
|
|
17
|
+
<context>
|
|
18
|
+
@.base/workspace.json
|
|
19
|
+
</context>
|
|
20
|
+
|
|
21
|
+
<process>
|
|
22
|
+
Follow task: @.claude/skills/base/tasks/surface-list.md
|
|
23
|
+
</process>
|
|
24
|
+
|
|
25
|
+
<success_criteria>
|
|
26
|
+
- [ ] All registered surfaces displayed with counts
|
|
27
|
+
</success_criteria>
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# BASE Principles
|
|
2
|
+
|
|
3
|
+
## Core Laws
|
|
4
|
+
|
|
5
|
+
1. **If it's not current, it's harmful.** Stale context documents feed AI bad information. Maintenance isn't optional.
|
|
6
|
+
2. **Every file earns its place.** If you can't explain why it's here in 5 seconds, it moves or dies.
|
|
7
|
+
3. **Archive > delete.** When in doubt, archive. You can always delete later. You can't un-delete.
|
|
8
|
+
4. **The workspace is the product.** Treat it like production code, not a scratch pad.
|
|
9
|
+
5. **Clean as you go.** The best time to file something correctly is when you create it. The second best time is now.
|
|
10
|
+
6. **Scaffold generates manifest. Manifest drives everything.** One configuration point. No manual bookkeeping.
|
|
11
|
+
7. **Tools register themselves.** PAUL projects auto-register with BASE. No human memory required.
|
|
12
|
+
|
|
13
|
+
## Drift Score
|
|
14
|
+
|
|
15
|
+
Drift is the gap between documented state and actual state. Measured in days-overdue across all tracked areas.
|
|
16
|
+
|
|
17
|
+
- **0** — Everything current. Workspace is clean.
|
|
18
|
+
- **1-7** — Minor drift. Normal during execution sprints. Fix at next groom.
|
|
19
|
+
- **8-14** — Moderate drift. Context documents are likely misleading AI. Groom soon.
|
|
20
|
+
- **15+** — Critical drift. Sessions are operating on stale context. Groom NOW.
|
|
21
|
+
|
|
22
|
+
## Maintenance Cadence
|
|
23
|
+
|
|
24
|
+
| What | Default Cadence | Override |
|
|
25
|
+
|------|----------------|---------|
|
|
26
|
+
| ACTIVE.md | Every session or weekly | workspace.json |
|
|
27
|
+
| BACKLOG.md | Weekly groom | workspace.json |
|
|
28
|
+
| Project directory | Monthly | workspace.json |
|
|
29
|
+
| Tools/MCP | Monthly | workspace.json |
|
|
30
|
+
| System layer | Monthly | workspace.json |
|
|
31
|
+
| Full audit | Quarterly or after major shifts | On demand |
|
|
32
|
+
|
|
33
|
+
## Backlog Rules
|
|
34
|
+
|
|
35
|
+
Items have time-based properties enforced by grooming:
|
|
36
|
+
|
|
37
|
+
- **Added** — auto-set when item enters backlog
|
|
38
|
+
- **Review-by** — priority-based: High=7d, Medium=14d, Low=30d
|
|
39
|
+
- **Staleness** — 2x review-by threshold. Auto-archive if reached without action.
|
|
40
|
+
|
|
41
|
+
During groom: items past review-by surface as "decide or kill." Items past staleness auto-archive with a note.
|
|
42
|
+
|
|
43
|
+
## Graduation Flow
|
|
44
|
+
|
|
45
|
+
Backlog items don't sit forever. They graduate to ACTIVE.md when the operator is ready to work on them.
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
BACKLOG (waiting review)
|
|
49
|
+
→ ACTIVE.md TASKS (standalone, bounded work items)
|
|
50
|
+
→ ACTIVE.md PROJECT (complex work warranting its own project entry)
|
|
51
|
+
→ DONE (closed with outcome + date)
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
**TASKS vs PROJECTS:** A task is bounded — it has a finish line. "Extract .mcp.json secrets" is a task. "Build the CARL MCP server" might start as a task but could become a project if it grows. The operator decides during groom.
|
|
55
|
+
|
|
56
|
+
**Graduation is never automatic.** The groom flow asks explicitly: "Ready to work on any backlog items?" The operator decides what graduates and where it lands.
|
|
57
|
+
|
|
58
|
+
**Items can also move backward:** An ACTIVE task that loses priority can return to backlog. A project that stalls can move to DEFERRED. Nothing is permanent.
|
|
59
|
+
|
|
60
|
+
## Scaffold Modes
|
|
61
|
+
|
|
62
|
+
BASE scaffold operates in two modes:
|
|
63
|
+
|
|
64
|
+
- **Standard** (`/base:scaffold`) — Data layer only. Creates `.base/` with workspace.json, STATE.md, ROADMAP.md. Scans and tracks what exists. Framework-agnostic.
|
|
65
|
+
- **Full** (`/base:scaffold --full`) — Data layer + operational templates. Creates ACTIVE.md, BACKLOG.md from templates. Offers CLAUDE.md audit. Sets up symlinks. The "batteries included" version for AI builders who want the full system.
|
|
66
|
+
|
|
67
|
+
Standard mode works for any workspace. Full mode provides Chris's proven operational structure.
|
|
68
|
+
|
|
69
|
+
## File Location
|
|
70
|
+
|
|
71
|
+
BASE operates strictly out of `.base/`. All state files (ACTIVE.md, BACKLOG.md, STATE.md, workspace.json, ROADMAP.md) live in `.base/`. Symlinks at workspace root are a **migration tool only** — offered when existing references (CLAUDE.md @mentions, hooks) would break. New installations never need symlinks. `.base/` is the canonical location.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Audit Strategies
|
|
2
|
+
|
|
3
|
+
Reusable audit strategies that can be applied to any workspace area. The workspace manifest (`workspace.json`) maps areas to strategies. The audit command reads the manifest and applies the appropriate strategy to each area.
|
|
4
|
+
|
|
5
|
+
## Strategies
|
|
6
|
+
|
|
7
|
+
### staleness
|
|
8
|
+
**Applies to:** Working memory files (ACTIVE.md, BACKLOG.md, any tracked document)
|
|
9
|
+
**What it does:** Check file modification timestamps against configured thresholds. Flag files past their groom cadence.
|
|
10
|
+
**Config:**
|
|
11
|
+
- `threshold_days` — days after which the file is considered stale
|
|
12
|
+
**Output:** List of stale files with age, recommended action (update or review)
|
|
13
|
+
|
|
14
|
+
### classify
|
|
15
|
+
**Applies to:** Directories with lifecycle items (projects/, clients/)
|
|
16
|
+
**What it does:** List all items in the directory. For each, present to operator for classification: active, archive, or delete. Check for planning docs, recent activity, git history.
|
|
17
|
+
**Config:**
|
|
18
|
+
- `states` — classification options (default: ["active", "archive", "delete"])
|
|
19
|
+
- `archive_path` — where archived items go (default: `{path}/_archive/`)
|
|
20
|
+
**Output:** Classification decisions, items moved to archive, items deleted
|
|
21
|
+
|
|
22
|
+
### cross-reference
|
|
23
|
+
**Applies to:** Tools/servers that have a config file mapping (e.g., MCP servers vs .mcp.json)
|
|
24
|
+
**What it does:** Compare directory contents against a configuration file. Identify directories not referenced in config (orphaned) and config entries pointing to missing directories (broken).
|
|
25
|
+
**Config:**
|
|
26
|
+
- `config_file` — path to the configuration file to cross-reference
|
|
27
|
+
**Output:** Orphaned items, broken references, recommendations
|
|
28
|
+
|
|
29
|
+
### dead-code
|
|
30
|
+
**Applies to:** System directories (hooks, commands, skills)
|
|
31
|
+
**What it does:** Scan for files that appear unused — no references from other files, no recent invocations, no clear purpose. Presents findings for human decision.
|
|
32
|
+
**Config:**
|
|
33
|
+
- `reference_check` — whether to search for references in other files (default: true)
|
|
34
|
+
**Output:** Potentially dead files with evidence, operator decides keep/delete
|
|
35
|
+
|
|
36
|
+
### pipeline-status
|
|
37
|
+
**Applies to:** Content pipelines, task queues, any workflow with stages
|
|
38
|
+
**What it does:** Check items in each pipeline stage. Flag stuck items (in same stage too long), empty stages, bottlenecks.
|
|
39
|
+
**Config:**
|
|
40
|
+
- `stages` — ordered list of pipeline stages
|
|
41
|
+
- `stuck_threshold_days` — days in one stage before flagging
|
|
42
|
+
**Output:** Pipeline health report, stuck items, stage distribution
|
|
43
|
+
|
|
44
|
+
## Extending Strategies
|
|
45
|
+
|
|
46
|
+
Custom strategies can be added for workspace-specific needs. A strategy is defined by:
|
|
47
|
+
1. A name (kebab-case)
|
|
48
|
+
2. What it applies to (description)
|
|
49
|
+
3. What it checks (logic)
|
|
50
|
+
4. What config it needs (parameters)
|
|
51
|
+
5. What it outputs (findings format)
|
|
52
|
+
|
|
53
|
+
Add custom strategies to this file and reference them in `workspace.json`.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Satellite Registration Framework
|
|
2
|
+
|
|
3
|
+
## What Are Satellites
|
|
4
|
+
|
|
5
|
+
Satellites are projects that live in their own git repos inside the workspace (e.g., `apps/*`). They run their own Claude Code sessions independently. BASE needs visibility into them without owning them.
|
|
6
|
+
|
|
7
|
+
## Registration Flow
|
|
8
|
+
|
|
9
|
+
### Automatic (via PAUL init)
|
|
10
|
+
When `/paul:init` runs in a subdirectory:
|
|
11
|
+
1. Check if parent directory has `.base/workspace.json`
|
|
12
|
+
2. If yes, write registration entry: project name, path, engine type, state file path, date
|
|
13
|
+
3. Report: "Registered with BASE workspace: {workspace-name}"
|
|
14
|
+
|
|
15
|
+
### Automatic (via BASE scaffold)
|
|
16
|
+
When `/base:scaffold` runs:
|
|
17
|
+
1. Scan configured satellite directories (default: `apps/`)
|
|
18
|
+
2. Detect existing `.paul/` directories
|
|
19
|
+
3. Auto-register discovered projects
|
|
20
|
+
4. Report: "Found {N} satellite projects. Registered."
|
|
21
|
+
|
|
22
|
+
### Automatic (via BASE groom)
|
|
23
|
+
During groom:
|
|
24
|
+
1. Read registered satellites from workspace.json
|
|
25
|
+
2. Check each path exists (clean up broken registrations)
|
|
26
|
+
3. Scan satellite directories for unregistered projects with `.paul/`
|
|
27
|
+
4. Flag: "Found unregistered project: {name}. Register?"
|
|
28
|
+
|
|
29
|
+
## Health Checks
|
|
30
|
+
|
|
31
|
+
During `/base:pulse` and `/base:groom`, for each satellite:
|
|
32
|
+
1. Read the state file (e.g., `.paul/STATE.md`)
|
|
33
|
+
2. Check last modification date
|
|
34
|
+
3. Extract current phase/milestone if parseable
|
|
35
|
+
4. Report health: active, stale, or unknown
|
|
36
|
+
|
|
37
|
+
BASE never modifies satellite state. It only reads and reports. PAUL (or whatever engine) manages the project. BASE manages the workspace those projects live in.
|
|
38
|
+
|
|
39
|
+
## Deregistration
|
|
40
|
+
|
|
41
|
+
Satellites are deregistered when:
|
|
42
|
+
- The project directory no longer exists (auto-cleaned during groom)
|
|
43
|
+
- The user explicitly removes it during audit
|
|
44
|
+
- The project is archived (moved to `_archive/` or similar)
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
<purpose>
|
|
2
|
+
Audit an existing CLAUDE.md and generate a recommended alternative (CLAUDE.base.md) that follows BASE workspace conventions. Never overwrites the user's existing file.
|
|
3
|
+
</purpose>
|
|
4
|
+
|
|
5
|
+
<user-story>
|
|
6
|
+
As an AI builder setting up BASE, I want my CLAUDE.md audited against best practices, so that I get a recommended version I can adopt without losing my current config.
|
|
7
|
+
</user-story>
|
|
8
|
+
|
|
9
|
+
<when-to-use>
|
|
10
|
+
- During /base:scaffold (optional step)
|
|
11
|
+
- When user says "audit my claude.md", "improve my claude.md"
|
|
12
|
+
- Entry point routes here via /base:audit-claude-md
|
|
13
|
+
</when-to-use>
|
|
14
|
+
|
|
15
|
+
<steps>
|
|
16
|
+
|
|
17
|
+
<step name="read_existing" priority="first">
|
|
18
|
+
Read the user's existing CLAUDE.md.
|
|
19
|
+
|
|
20
|
+
1. Read `CLAUDE.md` from workspace root
|
|
21
|
+
2. If no CLAUDE.md exists, skip audit and generate fresh from template
|
|
22
|
+
3. Parse sections: identify what's covered (identity, structure, conventions, tool config, etc.)
|
|
23
|
+
4. Note what's missing vs BASE best practices
|
|
24
|
+
</step>
|
|
25
|
+
|
|
26
|
+
<step name="assess_and_recommend">
|
|
27
|
+
Compare against BASE workspace conventions.
|
|
28
|
+
|
|
29
|
+
Check for:
|
|
30
|
+
- [ ] Working memory references (@ACTIVE.md, @BACKLOG.md, @STATE.md)
|
|
31
|
+
- [ ] Workspace structure tree (accurate to actual filesystem?)
|
|
32
|
+
- [ ] Git strategy documentation
|
|
33
|
+
- [ ] Tool priority declarations (LSP, etc.)
|
|
34
|
+
- [ ] Business/identity context (who, what, why)
|
|
35
|
+
- [ ] CARL/BASE integration references
|
|
36
|
+
- [ ] Key locations table
|
|
37
|
+
- [ ] Documentation system description
|
|
38
|
+
- [ ] Banned words / style preferences
|
|
39
|
+
|
|
40
|
+
For each missing or outdated section, prepare a recommendation.
|
|
41
|
+
</step>
|
|
42
|
+
|
|
43
|
+
<step name="generate_alternative">
|
|
44
|
+
Generate CLAUDE.base.md as a recommended version.
|
|
45
|
+
|
|
46
|
+
1. Build a complete CLAUDE.md following BASE conventions
|
|
47
|
+
2. Preserve all existing content that's still accurate
|
|
48
|
+
3. Add missing sections from BASE template
|
|
49
|
+
4. Update workspace structure tree to match actual filesystem
|
|
50
|
+
5. Write to `CLAUDE.base.md` (NOT CLAUDE.md)
|
|
51
|
+
6. Present diff summary: "Here's what changed vs your current CLAUDE.md"
|
|
52
|
+
|
|
53
|
+
Tell user: "Review CLAUDE.base.md. If you want to adopt it, rename it to CLAUDE.md. Your original is untouched."
|
|
54
|
+
</step>
|
|
55
|
+
|
|
56
|
+
</steps>
|
|
57
|
+
|
|
58
|
+
<output>
|
|
59
|
+
CLAUDE.base.md file in workspace root — a recommended CLAUDE.md following BASE conventions. Original CLAUDE.md is never modified.
|
|
60
|
+
</output>
|
|
61
|
+
|
|
62
|
+
<acceptance-criteria>
|
|
63
|
+
- [ ] Existing CLAUDE.md read and analyzed
|
|
64
|
+
- [ ] All BASE best-practice sections checked
|
|
65
|
+
- [ ] CLAUDE.base.md generated with recommendations
|
|
66
|
+
- [ ] Original CLAUDE.md untouched
|
|
67
|
+
- [ ] User informed of differences and how to adopt
|
|
68
|
+
</acceptance-criteria>
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
<purpose>
|
|
2
|
+
Deep workspace optimization. Dynamically generate audit phases from the workspace manifest, run each area's configured audit strategy, and execute operator-approved changes.
|
|
3
|
+
</purpose>
|
|
4
|
+
|
|
5
|
+
<user-story>
|
|
6
|
+
As an AI builder, I want a thorough workspace audit that adapts to my workspace structure, so that every area gets properly reviewed regardless of how complex my setup is.
|
|
7
|
+
</user-story>
|
|
8
|
+
|
|
9
|
+
<when-to-use>
|
|
10
|
+
- Quarterly or after major workspace shifts
|
|
11
|
+
- When user says "base audit", "deep clean", "optimize workspace"
|
|
12
|
+
- Entry point routes here via /base:audit
|
|
13
|
+
</when-to-use>
|
|
14
|
+
|
|
15
|
+
<steps>
|
|
16
|
+
|
|
17
|
+
<step name="generate_phases" priority="first">
|
|
18
|
+
Read workspace manifest and generate audit phases dynamically.
|
|
19
|
+
|
|
20
|
+
1. Read `.base/workspace.json`
|
|
21
|
+
2. For each area, create an audit phase using its configured strategy
|
|
22
|
+
3. Present phase list: "Audit will cover {N} phases: {list with strategies}"
|
|
23
|
+
4. Create task tracking for each phase
|
|
24
|
+
|
|
25
|
+
**Wait for operator confirmation. Allow them to skip or reorder phases.**
|
|
26
|
+
</step>
|
|
27
|
+
|
|
28
|
+
<step name="execute_phases">
|
|
29
|
+
Run each phase using its configured audit strategy.
|
|
30
|
+
|
|
31
|
+
For each phase:
|
|
32
|
+
1. Announce: "Phase {N}: {area-name} ({strategy})"
|
|
33
|
+
2. Execute the strategy (reference frameworks/audit-strategies.md)
|
|
34
|
+
3. Present findings
|
|
35
|
+
4. Collect operator decisions (keep/archive/delete/move)
|
|
36
|
+
5. Execute approved changes
|
|
37
|
+
6. Mark phase complete
|
|
38
|
+
|
|
39
|
+
Strategies are documented in `@frameworks/audit-strategies.md`.
|
|
40
|
+
</step>
|
|
41
|
+
|
|
42
|
+
<step name="record_audit">
|
|
43
|
+
Record the audit results.
|
|
44
|
+
|
|
45
|
+
1. Update `.base/STATE.md`
|
|
46
|
+
2. Write audit record to `.base/audits/{YYYY-MM-DD}.md`
|
|
47
|
+
3. Log to `.base/ROADMAP.md`
|
|
48
|
+
4. Report final summary: phases completed, items changed, new drift score
|
|
49
|
+
</step>
|
|
50
|
+
|
|
51
|
+
</steps>
|
|
52
|
+
|
|
53
|
+
<output>
|
|
54
|
+
Complete workspace audit with dynamic phases. All areas reviewed, changes executed, audit recorded.
|
|
55
|
+
</output>
|
|
56
|
+
|
|
57
|
+
<acceptance-criteria>
|
|
58
|
+
- [ ] Phases generated dynamically from manifest (not hardcoded)
|
|
59
|
+
- [ ] Each area audited using its configured strategy
|
|
60
|
+
- [ ] Operator approved all changes before execution
|
|
61
|
+
- [ ] Audit record written to audits/ directory
|
|
62
|
+
- [ ] STATE.md updated
|
|
63
|
+
- [ ] ROADMAP.md updated with audit entry
|
|
64
|
+
</acceptance-criteria>
|