clauderizer 0.2.0__tar.gz
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.
- clauderizer-0.2.0/.claude/settings.json +14 -0
- clauderizer-0.2.0/.claude/skills/clauderizer-amend/SKILL.md +21 -0
- clauderizer-0.2.0/.claude/skills/clauderizer-cascade/SKILL.md +16 -0
- clauderizer-0.2.0/.claude/skills/clauderizer-close-gameplan/SKILL.md +12 -0
- clauderizer-0.2.0/.claude/skills/clauderizer-do-phase/SKILL.md +16 -0
- clauderizer-0.2.0/.claude/skills/clauderizer-new-gameplan/SKILL.md +13 -0
- clauderizer-0.2.0/.claude/skills/clauderizer-record/SKILL.md +15 -0
- clauderizer-0.2.0/.clauderizer/config.toml +22 -0
- clauderizer-0.2.0/.clauderizer/profile.lock.toml +10 -0
- clauderizer-0.2.0/.github/workflows/publish.yml +41 -0
- clauderizer-0.2.0/.github/workflows/test.yml +20 -0
- clauderizer-0.2.0/.gitignore +24 -0
- clauderizer-0.2.0/.mcp.json +12 -0
- clauderizer-0.2.0/CHANGELOG.md +67 -0
- clauderizer-0.2.0/CLAUDE.md +24 -0
- clauderizer-0.2.0/LICENSE +21 -0
- clauderizer-0.2.0/PKG-INFO +333 -0
- clauderizer-0.2.0/README.md +306 -0
- clauderizer-0.2.0/docs/ARCHITECTURE.md +13 -0
- clauderizer-0.2.0/docs/DECISIONS.md +50 -0
- clauderizer-0.2.0/docs/HARDENING.md +8 -0
- clauderizer-0.2.0/docs/INVARIANTS.md +23 -0
- clauderizer-0.2.0/docs/TESTING.md +14 -0
- clauderizer-0.2.0/docs/VISION.md +13 -0
- clauderizer-0.2.0/docs/features/init-cli.md +13 -0
- clauderizer-0.2.0/docs/gameplans/2026-05-30-clauderizer-v1-bootstrap/CHAT-HANDOFF-INDEX.md +75 -0
- clauderizer-0.2.0/docs/gameplans/2026-05-30-clauderizer-v1-bootstrap/GAMEPLAN.md +44 -0
- clauderizer-0.2.0/docs/gameplans/2026-05-30-clauderizer-v1-bootstrap/PHASE-STATUS.md +26 -0
- clauderizer-0.2.0/docs/gameplans/2026-05-30-clauderizer-v1-bootstrap/_cascade-reports/.gitkeep +0 -0
- clauderizer-0.2.0/docs/gameplans/2026-05-30-clauderizer-v1-bootstrap/_cascade-reports/2026-05-30-subsys.markdown-core.md +31 -0
- clauderizer-0.2.0/docs/gameplans/2026-05-30-clauderizer-v1-bootstrap/_template/handoff.md +31 -0
- clauderizer-0.2.0/docs/gameplans/GAMEPLAN-PROCEDURE.md +1171 -0
- clauderizer-0.2.0/docs/subsystems/graph.md +13 -0
- clauderizer-0.2.0/docs/subsystems/markdown-core.md +12 -0
- clauderizer-0.2.0/docs/subsystems/mcp-server.md +15 -0
- clauderizer-0.2.0/docs/subsystems/mutations.md +14 -0
- clauderizer-0.2.0/docs/subsystems/profiles.md +12 -0
- clauderizer-0.2.0/docs/subsystems/rituals.md +14 -0
- clauderizer-0.2.0/docs/subsystems/scaffold.md +14 -0
- clauderizer-0.2.0/pyproject.toml +54 -0
- clauderizer-0.2.0/src/clauderizer/__init__.py +12 -0
- clauderizer-0.2.0/src/clauderizer/__main__.py +4 -0
- clauderizer-0.2.0/src/clauderizer/assets.py +43 -0
- clauderizer-0.2.0/src/clauderizer/cli.py +256 -0
- clauderizer-0.2.0/src/clauderizer/config.py +175 -0
- clauderizer-0.2.0/src/clauderizer/graph/__init__.py +9 -0
- clauderizer-0.2.0/src/clauderizer/graph/cascade.py +127 -0
- clauderizer-0.2.0/src/clauderizer/graph/index.py +90 -0
- clauderizer-0.2.0/src/clauderizer/graph/query.py +78 -0
- clauderizer-0.2.0/src/clauderizer/hook/__init__.py +1 -0
- clauderizer-0.2.0/src/clauderizer/hook/sessionstart.py +36 -0
- clauderizer-0.2.0/src/clauderizer/markdown/__init__.py +10 -0
- clauderizer-0.2.0/src/clauderizer/markdown/frontmatter.py +150 -0
- clauderizer-0.2.0/src/clauderizer/markdown/sections.py +138 -0
- clauderizer-0.2.0/src/clauderizer/markdown/writer.py +100 -0
- clauderizer-0.2.0/src/clauderizer/mcp_server.py +281 -0
- clauderizer-0.2.0/src/clauderizer/model.py +150 -0
- clauderizer-0.2.0/src/clauderizer/mutations.py +404 -0
- clauderizer-0.2.0/src/clauderizer/paths.py +82 -0
- clauderizer-0.2.0/src/clauderizer/profiles/__init__.py +7 -0
- clauderizer-0.2.0/src/clauderizer/profiles/detect.py +105 -0
- clauderizer-0.2.0/src/clauderizer/profiles/generic.toml +16 -0
- clauderizer-0.2.0/src/clauderizer/profiles/go.toml +14 -0
- clauderizer-0.2.0/src/clauderizer/profiles/node.toml +14 -0
- clauderizer-0.2.0/src/clauderizer/profiles/python.toml +14 -0
- clauderizer-0.2.0/src/clauderizer/profiles/ruby.toml +14 -0
- clauderizer-0.2.0/src/clauderizer/rituals/__init__.py +9 -0
- clauderizer-0.2.0/src/clauderizer/rituals/_tables.py +74 -0
- clauderizer-0.2.0/src/clauderizer/rituals/handoff.py +112 -0
- clauderizer-0.2.0/src/clauderizer/rituals/preflight.py +161 -0
- clauderizer-0.2.0/src/clauderizer/rituals/status_bundle.py +117 -0
- clauderizer-0.2.0/src/clauderizer/scaffold/__init__.py +1 -0
- clauderizer-0.2.0/src/clauderizer/scaffold/init.py +218 -0
- clauderizer-0.2.0/src/clauderizer/skills/clauderizer-amend/SKILL.md +21 -0
- clauderizer-0.2.0/src/clauderizer/skills/clauderizer-cascade/SKILL.md +16 -0
- clauderizer-0.2.0/src/clauderizer/skills/clauderizer-close-gameplan/SKILL.md +12 -0
- clauderizer-0.2.0/src/clauderizer/skills/clauderizer-do-phase/SKILL.md +16 -0
- clauderizer-0.2.0/src/clauderizer/skills/clauderizer-new-gameplan/SKILL.md +13 -0
- clauderizer-0.2.0/src/clauderizer/skills/clauderizer-record/SKILL.md +15 -0
- clauderizer-0.2.0/src/clauderizer/templates/GAMEPLAN-PROCEDURE.md +1171 -0
- clauderizer-0.2.0/src/clauderizer/templates/claude_stanza.md +22 -0
- clauderizer-0.2.0/src/clauderizer/templates/docs/ARCHITECTURE.md +13 -0
- clauderizer-0.2.0/src/clauderizer/templates/docs/DATASOURCES.md +8 -0
- clauderizer-0.2.0/src/clauderizer/templates/docs/DECISIONS.md +8 -0
- clauderizer-0.2.0/src/clauderizer/templates/docs/DEPLOYMENT.md +9 -0
- clauderizer-0.2.0/src/clauderizer/templates/docs/ENGINEERING-PRINCIPLES.md +6 -0
- clauderizer-0.2.0/src/clauderizer/templates/docs/GLOSSARY.md +7 -0
- clauderizer-0.2.0/src/clauderizer/templates/docs/HARDENING.md +8 -0
- clauderizer-0.2.0/src/clauderizer/templates/docs/INCIDENTS.md +7 -0
- clauderizer-0.2.0/src/clauderizer/templates/docs/INVARIANTS.md +7 -0
- clauderizer-0.2.0/src/clauderizer/templates/docs/REQUIREMENTS.md +13 -0
- clauderizer-0.2.0/src/clauderizer/templates/docs/SCHEMA.md +7 -0
- clauderizer-0.2.0/src/clauderizer/templates/docs/SECURITY.md +13 -0
- clauderizer-0.2.0/src/clauderizer/templates/docs/TESTING.md +14 -0
- clauderizer-0.2.0/src/clauderizer/templates/docs/VISION.md +13 -0
- clauderizer-0.2.0/src/clauderizer/templates/frontmatter/external-service.md +13 -0
- clauderizer-0.2.0/src/clauderizer/templates/frontmatter/feature.md +15 -0
- clauderizer-0.2.0/src/clauderizer/templates/frontmatter/subsystem.md +14 -0
- clauderizer-0.2.0/src/clauderizer/templates/gameplan/CHAT-HANDOFF-INDEX.md +45 -0
- clauderizer-0.2.0/src/clauderizer/templates/gameplan/GAMEPLAN.md +44 -0
- clauderizer-0.2.0/src/clauderizer/templates/gameplan/PHASE-STATUS.md +18 -0
- clauderizer-0.2.0/src/clauderizer/templates/gameplan/handoff.md +31 -0
- clauderizer-0.2.0/src/clauderizer/tools_list.py +24 -0
- clauderizer-0.2.0/tests/__init__.py +0 -0
- clauderizer-0.2.0/tests/conftest.py +38 -0
- clauderizer-0.2.0/tests/fixtures/sample_repo/.clauderizer/config.toml +22 -0
- clauderizer-0.2.0/tests/fixtures/sample_repo/docs/DECISIONS.md +12 -0
- clauderizer-0.2.0/tests/fixtures/sample_repo/docs/INVARIANTS.md +9 -0
- clauderizer-0.2.0/tests/fixtures/sample_repo/docs/features/legacy.md +17 -0
- clauderizer-0.2.0/tests/fixtures/sample_repo/docs/features/login.md +16 -0
- clauderizer-0.2.0/tests/fixtures/sample_repo/docs/gameplans/2026-05-01-bootstrap/CHAT-HANDOFF-INDEX.md +27 -0
- clauderizer-0.2.0/tests/fixtures/sample_repo/docs/gameplans/2026-05-01-bootstrap/GAMEPLAN.md +49 -0
- clauderizer-0.2.0/tests/fixtures/sample_repo/docs/gameplans/2026-05-01-bootstrap/PHASE-STATUS.md +29 -0
- clauderizer-0.2.0/tests/fixtures/sample_repo/docs/gameplans/2026-05-01-bootstrap/_cascade-reports/.gitkeep +0 -0
- clauderizer-0.2.0/tests/fixtures/sample_repo/docs/gameplans/2026-05-01-bootstrap/handoffs/PHASE-0-HANDOFF.md +24 -0
- clauderizer-0.2.0/tests/fixtures/sample_repo/docs/gameplans/GAMEPLAN-PROCEDURE.md +5 -0
- clauderizer-0.2.0/tests/fixtures/sample_repo/docs/subsystems/auth.md +14 -0
- clauderizer-0.2.0/tests/fixtures/sample_repo/docs/subsystems/calc-engine.md +13 -0
- clauderizer-0.2.0/tests/test_cascade.py +40 -0
- clauderizer-0.2.0/tests/test_engine_hardening.py +140 -0
- clauderizer-0.2.0/tests/test_frontmatter.py +62 -0
- clauderizer-0.2.0/tests/test_index.py +50 -0
- clauderizer-0.2.0/tests/test_init.py +87 -0
- clauderizer-0.2.0/tests/test_mcp_tools.py +132 -0
- clauderizer-0.2.0/tests/test_mutations.py +162 -0
- clauderizer-0.2.0/tests/test_profiles.py +32 -0
- clauderizer-0.2.0/tests/test_rituals.py +106 -0
- clauderizer-0.2.0/tests/test_sections.py +62 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: clauderizer-amend
|
|
3
|
+
description: Change a gameplan after it has started executing. Use when scope shifts mid-flight — a phase needs a task it's missing, a dependency changed, or work must be added/removed.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Amend a gameplan
|
|
7
|
+
|
|
8
|
+
First decide: **amend** or **new mini-gameplan**?
|
|
9
|
+
|
|
10
|
+
- If you'd write the *same* Project Overview paragraph for the new work as the original → **amend**.
|
|
11
|
+
- If a fresh overview makes more sense → start a separate gameplan (`cz_create_gameplan`).
|
|
12
|
+
|
|
13
|
+
To amend:
|
|
14
|
+
|
|
15
|
+
1. `cz_add_amendment` with the affected sections/phases, what changed, and why. It assigns the next `A-NNN` and references a cascade report.
|
|
16
|
+
2. Run `cz_cascade` over the affected phases and reconcile:
|
|
17
|
+
- Unstarted phases: the next handoff picks up the change.
|
|
18
|
+
- In-progress: log it as a correction and reconcile mid-flight.
|
|
19
|
+
- Completed: if the finished work conflicts, add a revisit phase.
|
|
20
|
+
|
|
21
|
+
Amendments are append-only — superseded ones stay with a note.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: clauderizer-cascade
|
|
3
|
+
description: After changing a tracked entity (subsystem, feature, decision, invariant, or a status/version), walk its dependents and reconcile them. Use whenever you finish an edit that something else might depend on.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Run cascade
|
|
7
|
+
|
|
8
|
+
Cascade is **post-hoc and judgment-based**: it finds what *might* be affected; you decide what actually is.
|
|
9
|
+
|
|
10
|
+
1. `cz_cascade(entity_id, transition)` — walks the Project DAG forward and writes a report listing direct + transitive dependents, each marked "needs review".
|
|
11
|
+
2. Open each flagged dependent. Decide: affected or not?
|
|
12
|
+
- If affected: make the edit, then note it under "Updates applied".
|
|
13
|
+
- If not: note "no change needed".
|
|
14
|
+
3. Resolve every "needs review" marker before the session ends — a report with unresolved markers shows up as a pending cascade in `cz_status` and fails the `cascade_hygiene` pre-flight check.
|
|
15
|
+
|
|
16
|
+
Status transitions already trigger cascade via `cz_transition_status`; use this skill for manual triggers or to finish reconciling a report.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: clauderizer-close-gameplan
|
|
3
|
+
description: Close out a completed (or explicitly deferred) gameplan. Use when all phases are done and the user wants to wrap up and capture what was learned.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Close a gameplan
|
|
7
|
+
|
|
8
|
+
1. Confirm every phase is complete or explicitly deferred (`cz_status`).
|
|
9
|
+
2. Run a full cascade pass; resolve any pending reports.
|
|
10
|
+
3. Update project-level docs (CHANGELOG, ARCHITECTURE, REQUIREMENTS) to reflect final state.
|
|
11
|
+
4. Write a `POST-MORTEM.md` in the gameplan dir: what worked, what didn't (with root causes), and concrete improvements to the procedure. This is where the system itself gets better.
|
|
12
|
+
5. Leave the gameplan directory on disk (nothing is deleted) and clear/replace `active_gameplan` in `.clauderizer/config.toml`.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: clauderizer-do-phase
|
|
3
|
+
description: Execute or continue the current gameplan phase end-to-end — pre-flight, do the work, then close out (handoff + status transitions + cascade). Use when the user says "do the next phase", "continue the gameplan", or "work on phase N".
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Execute a phase
|
|
7
|
+
|
|
8
|
+
1. Call `cz_next_phase_context` to load the phase bundle (tasks, key files, lessons, exit criteria). Read the key files it lists.
|
|
9
|
+
2. Call `cz_preflight`. If any enabled check fails, STOP and report — do not write code.
|
|
10
|
+
3. Execute the phase tasks. Honor every rule in `CLAUDE.md` and the accumulated lessons.
|
|
11
|
+
4. Closing protocol:
|
|
12
|
+
- Record outcomes: `cz_add_correction` for any divergence; `cz_add_lesson` for anything generalizable.
|
|
13
|
+
- For each subsystem/feature whose state changed, `cz_transition_status` (this fires cascade automatically when enabled).
|
|
14
|
+
- For any other tracked edit, run `cz_cascade` and fill in the report's "needs review" verdicts.
|
|
15
|
+
- `cz_write_handoff` for the next phase.
|
|
16
|
+
- Run exit verification (the host test/build commands) and report the final count.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: clauderizer-new-gameplan
|
|
3
|
+
description: Plan a new multi-phase gameplan from a goal. Use when the user wants to start a new initiative, project, or large feature and needs it broken into phases with decisions and exit criteria.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Start a gameplan
|
|
7
|
+
|
|
8
|
+
1. Clarify the goal in one sentence with the user.
|
|
9
|
+
2. Capture real source-of-truth values first (account IDs, versions, baseline test counts) — never invent them.
|
|
10
|
+
3. `cz_create_gameplan` with a descriptive name. This becomes the active gameplan.
|
|
11
|
+
4. Record the decisions that shape it with `cz_add_decision` (scope `gameplan` for tactical, `project` for architectural ADRs).
|
|
12
|
+
5. Lay out phases with `cz_add_phase` — each session-sized (1–3 days), with a goal, dependencies, and verifiable exit criteria. 5–25 phases is typical.
|
|
13
|
+
6. `cz_write_handoff` for Phase 0 so the first execution session is self-contained.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: clauderizer-record
|
|
3
|
+
description: Quickly capture a decision, invariant, lesson, correction, or risk into the right place. Use when the user says "remember that…", "we decided…", "note that…", or "that was a mistake, the right way is…".
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Record to memory
|
|
7
|
+
|
|
8
|
+
Route the capture to the correct tool so the graph stays consistent — never hand-edit the logs:
|
|
9
|
+
|
|
10
|
+
- **A decision** ("we decided X because Y") → `cz_add_decision` (project-wide ADR, or scope `gameplan` for tactics).
|
|
11
|
+
- **A rule that must always hold** → `cz_add_invariant`.
|
|
12
|
+
- **A reusable lesson** → `cz_add_lesson` (pick a category; it rolls into every future handoff).
|
|
13
|
+
- **A divergence from the plan** → `cz_add_correction` (optionally promote a `lesson` in the same call).
|
|
14
|
+
- **A persistent risk** → record under `docs/HARDENING.md` (append-only; never delete entries).
|
|
15
|
+
- **A new subsystem/feature/external service** → `cz_upsert_entity`.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
[clauderizer]
|
|
2
|
+
version = "1"
|
|
3
|
+
size = "standard"
|
|
4
|
+
preflight_checks = ["branch_base", "clean_tree", "tests", "build", "deps_spotcheck", "branch_creation", "cascade_hygiene"]
|
|
5
|
+
|
|
6
|
+
[host]
|
|
7
|
+
profile = "python"
|
|
8
|
+
|
|
9
|
+
[paths]
|
|
10
|
+
docs = "docs"
|
|
11
|
+
gameplans = "docs/gameplans"
|
|
12
|
+
|
|
13
|
+
[modules]
|
|
14
|
+
enabled = ["VISION", "ARCHITECTURE", "DECISIONS", "INVARIANTS", "TESTING", "HARDENING"]
|
|
15
|
+
|
|
16
|
+
[rituals]
|
|
17
|
+
preflight = true
|
|
18
|
+
cascade = true
|
|
19
|
+
amendments = false
|
|
20
|
+
|
|
21
|
+
[active_gameplan]
|
|
22
|
+
id = "2026-05-30-clauderizer-v1-bootstrap"
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
name: Publish to PyPI
|
|
2
|
+
|
|
3
|
+
# Publishes when you cut a GitHub Release. Uses PyPI Trusted Publishing (OIDC) —
|
|
4
|
+
# no API token or secret is stored anywhere. Configure the trusted publisher once
|
|
5
|
+
# on PyPI (see "Publishing" in the README): project `clauderizer`, owner
|
|
6
|
+
# `collincusce`, repo `Clauderizer`, workflow `publish.yml`, environment `pypi`.
|
|
7
|
+
|
|
8
|
+
on:
|
|
9
|
+
release:
|
|
10
|
+
types: [published]
|
|
11
|
+
|
|
12
|
+
permissions:
|
|
13
|
+
contents: read
|
|
14
|
+
|
|
15
|
+
jobs:
|
|
16
|
+
build:
|
|
17
|
+
runs-on: ubuntu-latest
|
|
18
|
+
steps:
|
|
19
|
+
- uses: actions/checkout@v4
|
|
20
|
+
- uses: astral-sh/setup-uv@v5
|
|
21
|
+
- run: uv build
|
|
22
|
+
- run: uvx twine check dist/*
|
|
23
|
+
- uses: actions/upload-artifact@v4
|
|
24
|
+
with:
|
|
25
|
+
name: dist
|
|
26
|
+
path: dist/
|
|
27
|
+
|
|
28
|
+
publish:
|
|
29
|
+
needs: build
|
|
30
|
+
runs-on: ubuntu-latest
|
|
31
|
+
environment:
|
|
32
|
+
name: pypi
|
|
33
|
+
url: https://pypi.org/p/clauderizer
|
|
34
|
+
permissions:
|
|
35
|
+
id-token: write # required for Trusted Publishing
|
|
36
|
+
steps:
|
|
37
|
+
- uses: actions/download-artifact@v4
|
|
38
|
+
with:
|
|
39
|
+
name: dist
|
|
40
|
+
path: dist/
|
|
41
|
+
- uses: pypa/gh-action-pypi-publish@release/v1
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
name: Tests
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
pull_request:
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
test:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
strategy:
|
|
12
|
+
fail-fast: false
|
|
13
|
+
matrix:
|
|
14
|
+
python: ["3.10", "3.11", "3.12", "3.13"]
|
|
15
|
+
steps:
|
|
16
|
+
- uses: actions/checkout@v4
|
|
17
|
+
- uses: astral-sh/setup-uv@v5
|
|
18
|
+
- run: uv venv --python ${{ matrix.python }}
|
|
19
|
+
- run: uv pip install -e ".[mcp,dev]"
|
|
20
|
+
- run: uv run pytest -q
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Python
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*.egg-info/
|
|
5
|
+
.eggs/
|
|
6
|
+
build/
|
|
7
|
+
dist/
|
|
8
|
+
.pytest_cache/
|
|
9
|
+
.mypy_cache/
|
|
10
|
+
.ruff_cache/
|
|
11
|
+
|
|
12
|
+
# Virtualenvs
|
|
13
|
+
.venv/
|
|
14
|
+
venv/
|
|
15
|
+
env/
|
|
16
|
+
|
|
17
|
+
# Clauderizer disposable cache (rebuilt from markdown)
|
|
18
|
+
.clauderizer/index.json
|
|
19
|
+
|
|
20
|
+
# Local Claude Code settings
|
|
21
|
+
.claude/settings.local.json
|
|
22
|
+
|
|
23
|
+
# OS
|
|
24
|
+
.DS_Store
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to Clauderizer are documented here.
|
|
4
|
+
|
|
5
|
+
## [0.2.0] — 2026-06-05
|
|
6
|
+
|
|
7
|
+
First release published to PyPI.
|
|
8
|
+
|
|
9
|
+
### Packaging
|
|
10
|
+
- Fixed the wheel build: removed a `force-include` table that collided with
|
|
11
|
+
`packages`, which broke `uv build` / `python -m build`. The `templates/`,
|
|
12
|
+
`profiles/`, and `skills/` data dirs are bundled via `packages` and verified
|
|
13
|
+
present in the wheel.
|
|
14
|
+
- Core install is dependency-free; the MCP server is the `clauderizer[mcp]` extra.
|
|
15
|
+
|
|
16
|
+
### Added
|
|
17
|
+
- `cz_add_finding` / `mutations.add_finding` (alias `add_risk`) — record structured
|
|
18
|
+
security/audit findings into the append-only `HARDENING.md` tracker.
|
|
19
|
+
- `doctor` now probes that the MCP server **and** SessionStart hook commands are
|
|
20
|
+
actually executable, not just registered — a green check on a non-launchable
|
|
21
|
+
setup is worse than no check.
|
|
22
|
+
- `detect.load_for_repo()` overlays a project-local `profile.lock.toml`, so
|
|
23
|
+
per-project test/build/lint/typecheck overrides take effect (the lock was
|
|
24
|
+
previously write-only).
|
|
25
|
+
|
|
26
|
+
### Changed
|
|
27
|
+
- `init` wiring now prefers installed console scripts (venv/pipx) and only falls
|
|
28
|
+
back to `uvx`, fixing the Windows→WSL / venv drop-in path.
|
|
29
|
+
- Re-running `init` with a changed invocation now **replaces** the SessionStart
|
|
30
|
+
hook instead of appending a duplicate.
|
|
31
|
+
- `cz_next_phase_context` is side-effect-free: it assembles the handoff in memory
|
|
32
|
+
(`handoff.assemble(..., write=False)`) and returns it as `handoff_md`; only
|
|
33
|
+
`cz_write_handoff` persists a file.
|
|
34
|
+
- The first real entry in a doc section now replaces the scaffold `_(…)_`
|
|
35
|
+
placeholder instead of stacking beneath it.
|
|
36
|
+
|
|
37
|
+
### Fixed
|
|
38
|
+
- SessionStart hook errors print to stdout (visible in session context) instead
|
|
39
|
+
of stderr, where silent failure was the dangerous kind.
|
|
40
|
+
|
|
41
|
+
## [0.1.0] — 2026-05-30
|
|
42
|
+
|
|
43
|
+
Initial release. A drop-in, MCP-native successor to the markdown "gameplan
|
|
44
|
+
system": same conceptual model (gameplan → phase → task, a long-lived Project
|
|
45
|
+
DAG, post-hoc cascade, cumulative handoffs, append-only memory), delivered as an
|
|
46
|
+
active system instead of a procedure followed by hand.
|
|
47
|
+
|
|
48
|
+
### Added
|
|
49
|
+
|
|
50
|
+
- **Markdown core** — zero-dependency frontmatter parser, section/marker editing,
|
|
51
|
+
and a single idempotent mutation path (`markdown/writer.py`).
|
|
52
|
+
- **Project DAG** — graph index (cached to a disposable `index.json`), dependent/
|
|
53
|
+
dependency queries, and semver pin-violation detection.
|
|
54
|
+
- **Cascade** — post-hoc forward walk that writes a judgment-based report
|
|
55
|
+
(dependents marked "needs review"). Replaces the never-built `bin/cascade`.
|
|
56
|
+
- **Rituals as operations** — `preflight` (the 7 checks run for real against host
|
|
57
|
+
profile commands), cumulative `handoff` assembly, and the `status` digest.
|
|
58
|
+
- **Structured mutations** — decisions, invariants, lessons, corrections,
|
|
59
|
+
gameplans, phases, amendments, entities, and status transitions (auto-cascade).
|
|
60
|
+
- **MCP server** — 15 self-describing tools + resources over stdio (optional
|
|
61
|
+
`mcp` extra).
|
|
62
|
+
- **Configurability** — `pet` / `standard` / `saas` size dial and host-language
|
|
63
|
+
profiles (Node, Python, Go, Ruby, generic) as pure data.
|
|
64
|
+
- **Drop-in** — `clauderize init` (idempotent), `status`, `doctor`, `reindex`,
|
|
65
|
+
`mcp`; a SessionStart hook for automatic cold-start; six Claude Code skills.
|
|
66
|
+
- Test suite: 57 tests covering markdown round-trips, the graph, cascade,
|
|
67
|
+
rituals, mutations, init idempotency, profiles, and the live MCP tools.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
<!-- clauderizer:start -->
|
|
2
|
+
## Clauderizer
|
|
3
|
+
|
|
4
|
+
This repo uses **Clauderizer** for durable, cross-session working memory. Markdown
|
|
5
|
+
under `docs/` is the source of truth; an MCP server exposes it as live tools.
|
|
6
|
+
|
|
7
|
+
**Start of every session**: the SessionStart hook injects current gameplan status
|
|
8
|
+
into context automatically — no manual reading order. To refresh on demand, call
|
|
9
|
+
`cz_status`. To begin/continue a phase, call `cz_next_phase_context` then
|
|
10
|
+
`cz_preflight`.
|
|
11
|
+
|
|
12
|
+
**Key tools** (MCP server `clauderizer`):
|
|
13
|
+
- `cz_status` / `cz_next_phase_context` — where things stand; the next phase bundle.
|
|
14
|
+
- `cz_graph_query` — look up an entity and its dependents/dependencies.
|
|
15
|
+
- `cz_preflight` — run the pre-flight checks (tests/build via the host profile).
|
|
16
|
+
- `cz_cascade` — after a tracked edit, walk dependents and write a cascade report.
|
|
17
|
+
- `cz_write_handoff` — assemble the next cumulative phase handoff.
|
|
18
|
+
- `cz_add_decision` / `cz_add_invariant` / `cz_add_lesson` / `cz_add_correction`
|
|
19
|
+
/ `cz_upsert_entity` / `cz_transition_status` — structured, graph-aware writes.
|
|
20
|
+
|
|
21
|
+
**Rules**: never hand-edit frontmatter or append to tracked logs directly — use the
|
|
22
|
+
`cz_*` tools so the graph stays consistent. The procedure spec is at
|
|
23
|
+
`docs/gameplans/GAMEPLAN-PROCEDURE.md`.
|
|
24
|
+
<!-- clauderizer:end -->
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Clauderizer contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|