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.
Files changed (128) hide show
  1. clauderizer-0.2.0/.claude/settings.json +14 -0
  2. clauderizer-0.2.0/.claude/skills/clauderizer-amend/SKILL.md +21 -0
  3. clauderizer-0.2.0/.claude/skills/clauderizer-cascade/SKILL.md +16 -0
  4. clauderizer-0.2.0/.claude/skills/clauderizer-close-gameplan/SKILL.md +12 -0
  5. clauderizer-0.2.0/.claude/skills/clauderizer-do-phase/SKILL.md +16 -0
  6. clauderizer-0.2.0/.claude/skills/clauderizer-new-gameplan/SKILL.md +13 -0
  7. clauderizer-0.2.0/.claude/skills/clauderizer-record/SKILL.md +15 -0
  8. clauderizer-0.2.0/.clauderizer/config.toml +22 -0
  9. clauderizer-0.2.0/.clauderizer/profile.lock.toml +10 -0
  10. clauderizer-0.2.0/.github/workflows/publish.yml +41 -0
  11. clauderizer-0.2.0/.github/workflows/test.yml +20 -0
  12. clauderizer-0.2.0/.gitignore +24 -0
  13. clauderizer-0.2.0/.mcp.json +12 -0
  14. clauderizer-0.2.0/CHANGELOG.md +67 -0
  15. clauderizer-0.2.0/CLAUDE.md +24 -0
  16. clauderizer-0.2.0/LICENSE +21 -0
  17. clauderizer-0.2.0/PKG-INFO +333 -0
  18. clauderizer-0.2.0/README.md +306 -0
  19. clauderizer-0.2.0/docs/ARCHITECTURE.md +13 -0
  20. clauderizer-0.2.0/docs/DECISIONS.md +50 -0
  21. clauderizer-0.2.0/docs/HARDENING.md +8 -0
  22. clauderizer-0.2.0/docs/INVARIANTS.md +23 -0
  23. clauderizer-0.2.0/docs/TESTING.md +14 -0
  24. clauderizer-0.2.0/docs/VISION.md +13 -0
  25. clauderizer-0.2.0/docs/features/init-cli.md +13 -0
  26. clauderizer-0.2.0/docs/gameplans/2026-05-30-clauderizer-v1-bootstrap/CHAT-HANDOFF-INDEX.md +75 -0
  27. clauderizer-0.2.0/docs/gameplans/2026-05-30-clauderizer-v1-bootstrap/GAMEPLAN.md +44 -0
  28. clauderizer-0.2.0/docs/gameplans/2026-05-30-clauderizer-v1-bootstrap/PHASE-STATUS.md +26 -0
  29. clauderizer-0.2.0/docs/gameplans/2026-05-30-clauderizer-v1-bootstrap/_cascade-reports/.gitkeep +0 -0
  30. clauderizer-0.2.0/docs/gameplans/2026-05-30-clauderizer-v1-bootstrap/_cascade-reports/2026-05-30-subsys.markdown-core.md +31 -0
  31. clauderizer-0.2.0/docs/gameplans/2026-05-30-clauderizer-v1-bootstrap/_template/handoff.md +31 -0
  32. clauderizer-0.2.0/docs/gameplans/GAMEPLAN-PROCEDURE.md +1171 -0
  33. clauderizer-0.2.0/docs/subsystems/graph.md +13 -0
  34. clauderizer-0.2.0/docs/subsystems/markdown-core.md +12 -0
  35. clauderizer-0.2.0/docs/subsystems/mcp-server.md +15 -0
  36. clauderizer-0.2.0/docs/subsystems/mutations.md +14 -0
  37. clauderizer-0.2.0/docs/subsystems/profiles.md +12 -0
  38. clauderizer-0.2.0/docs/subsystems/rituals.md +14 -0
  39. clauderizer-0.2.0/docs/subsystems/scaffold.md +14 -0
  40. clauderizer-0.2.0/pyproject.toml +54 -0
  41. clauderizer-0.2.0/src/clauderizer/__init__.py +12 -0
  42. clauderizer-0.2.0/src/clauderizer/__main__.py +4 -0
  43. clauderizer-0.2.0/src/clauderizer/assets.py +43 -0
  44. clauderizer-0.2.0/src/clauderizer/cli.py +256 -0
  45. clauderizer-0.2.0/src/clauderizer/config.py +175 -0
  46. clauderizer-0.2.0/src/clauderizer/graph/__init__.py +9 -0
  47. clauderizer-0.2.0/src/clauderizer/graph/cascade.py +127 -0
  48. clauderizer-0.2.0/src/clauderizer/graph/index.py +90 -0
  49. clauderizer-0.2.0/src/clauderizer/graph/query.py +78 -0
  50. clauderizer-0.2.0/src/clauderizer/hook/__init__.py +1 -0
  51. clauderizer-0.2.0/src/clauderizer/hook/sessionstart.py +36 -0
  52. clauderizer-0.2.0/src/clauderizer/markdown/__init__.py +10 -0
  53. clauderizer-0.2.0/src/clauderizer/markdown/frontmatter.py +150 -0
  54. clauderizer-0.2.0/src/clauderizer/markdown/sections.py +138 -0
  55. clauderizer-0.2.0/src/clauderizer/markdown/writer.py +100 -0
  56. clauderizer-0.2.0/src/clauderizer/mcp_server.py +281 -0
  57. clauderizer-0.2.0/src/clauderizer/model.py +150 -0
  58. clauderizer-0.2.0/src/clauderizer/mutations.py +404 -0
  59. clauderizer-0.2.0/src/clauderizer/paths.py +82 -0
  60. clauderizer-0.2.0/src/clauderizer/profiles/__init__.py +7 -0
  61. clauderizer-0.2.0/src/clauderizer/profiles/detect.py +105 -0
  62. clauderizer-0.2.0/src/clauderizer/profiles/generic.toml +16 -0
  63. clauderizer-0.2.0/src/clauderizer/profiles/go.toml +14 -0
  64. clauderizer-0.2.0/src/clauderizer/profiles/node.toml +14 -0
  65. clauderizer-0.2.0/src/clauderizer/profiles/python.toml +14 -0
  66. clauderizer-0.2.0/src/clauderizer/profiles/ruby.toml +14 -0
  67. clauderizer-0.2.0/src/clauderizer/rituals/__init__.py +9 -0
  68. clauderizer-0.2.0/src/clauderizer/rituals/_tables.py +74 -0
  69. clauderizer-0.2.0/src/clauderizer/rituals/handoff.py +112 -0
  70. clauderizer-0.2.0/src/clauderizer/rituals/preflight.py +161 -0
  71. clauderizer-0.2.0/src/clauderizer/rituals/status_bundle.py +117 -0
  72. clauderizer-0.2.0/src/clauderizer/scaffold/__init__.py +1 -0
  73. clauderizer-0.2.0/src/clauderizer/scaffold/init.py +218 -0
  74. clauderizer-0.2.0/src/clauderizer/skills/clauderizer-amend/SKILL.md +21 -0
  75. clauderizer-0.2.0/src/clauderizer/skills/clauderizer-cascade/SKILL.md +16 -0
  76. clauderizer-0.2.0/src/clauderizer/skills/clauderizer-close-gameplan/SKILL.md +12 -0
  77. clauderizer-0.2.0/src/clauderizer/skills/clauderizer-do-phase/SKILL.md +16 -0
  78. clauderizer-0.2.0/src/clauderizer/skills/clauderizer-new-gameplan/SKILL.md +13 -0
  79. clauderizer-0.2.0/src/clauderizer/skills/clauderizer-record/SKILL.md +15 -0
  80. clauderizer-0.2.0/src/clauderizer/templates/GAMEPLAN-PROCEDURE.md +1171 -0
  81. clauderizer-0.2.0/src/clauderizer/templates/claude_stanza.md +22 -0
  82. clauderizer-0.2.0/src/clauderizer/templates/docs/ARCHITECTURE.md +13 -0
  83. clauderizer-0.2.0/src/clauderizer/templates/docs/DATASOURCES.md +8 -0
  84. clauderizer-0.2.0/src/clauderizer/templates/docs/DECISIONS.md +8 -0
  85. clauderizer-0.2.0/src/clauderizer/templates/docs/DEPLOYMENT.md +9 -0
  86. clauderizer-0.2.0/src/clauderizer/templates/docs/ENGINEERING-PRINCIPLES.md +6 -0
  87. clauderizer-0.2.0/src/clauderizer/templates/docs/GLOSSARY.md +7 -0
  88. clauderizer-0.2.0/src/clauderizer/templates/docs/HARDENING.md +8 -0
  89. clauderizer-0.2.0/src/clauderizer/templates/docs/INCIDENTS.md +7 -0
  90. clauderizer-0.2.0/src/clauderizer/templates/docs/INVARIANTS.md +7 -0
  91. clauderizer-0.2.0/src/clauderizer/templates/docs/REQUIREMENTS.md +13 -0
  92. clauderizer-0.2.0/src/clauderizer/templates/docs/SCHEMA.md +7 -0
  93. clauderizer-0.2.0/src/clauderizer/templates/docs/SECURITY.md +13 -0
  94. clauderizer-0.2.0/src/clauderizer/templates/docs/TESTING.md +14 -0
  95. clauderizer-0.2.0/src/clauderizer/templates/docs/VISION.md +13 -0
  96. clauderizer-0.2.0/src/clauderizer/templates/frontmatter/external-service.md +13 -0
  97. clauderizer-0.2.0/src/clauderizer/templates/frontmatter/feature.md +15 -0
  98. clauderizer-0.2.0/src/clauderizer/templates/frontmatter/subsystem.md +14 -0
  99. clauderizer-0.2.0/src/clauderizer/templates/gameplan/CHAT-HANDOFF-INDEX.md +45 -0
  100. clauderizer-0.2.0/src/clauderizer/templates/gameplan/GAMEPLAN.md +44 -0
  101. clauderizer-0.2.0/src/clauderizer/templates/gameplan/PHASE-STATUS.md +18 -0
  102. clauderizer-0.2.0/src/clauderizer/templates/gameplan/handoff.md +31 -0
  103. clauderizer-0.2.0/src/clauderizer/tools_list.py +24 -0
  104. clauderizer-0.2.0/tests/__init__.py +0 -0
  105. clauderizer-0.2.0/tests/conftest.py +38 -0
  106. clauderizer-0.2.0/tests/fixtures/sample_repo/.clauderizer/config.toml +22 -0
  107. clauderizer-0.2.0/tests/fixtures/sample_repo/docs/DECISIONS.md +12 -0
  108. clauderizer-0.2.0/tests/fixtures/sample_repo/docs/INVARIANTS.md +9 -0
  109. clauderizer-0.2.0/tests/fixtures/sample_repo/docs/features/legacy.md +17 -0
  110. clauderizer-0.2.0/tests/fixtures/sample_repo/docs/features/login.md +16 -0
  111. clauderizer-0.2.0/tests/fixtures/sample_repo/docs/gameplans/2026-05-01-bootstrap/CHAT-HANDOFF-INDEX.md +27 -0
  112. clauderizer-0.2.0/tests/fixtures/sample_repo/docs/gameplans/2026-05-01-bootstrap/GAMEPLAN.md +49 -0
  113. clauderizer-0.2.0/tests/fixtures/sample_repo/docs/gameplans/2026-05-01-bootstrap/PHASE-STATUS.md +29 -0
  114. clauderizer-0.2.0/tests/fixtures/sample_repo/docs/gameplans/2026-05-01-bootstrap/_cascade-reports/.gitkeep +0 -0
  115. clauderizer-0.2.0/tests/fixtures/sample_repo/docs/gameplans/2026-05-01-bootstrap/handoffs/PHASE-0-HANDOFF.md +24 -0
  116. clauderizer-0.2.0/tests/fixtures/sample_repo/docs/gameplans/GAMEPLAN-PROCEDURE.md +5 -0
  117. clauderizer-0.2.0/tests/fixtures/sample_repo/docs/subsystems/auth.md +14 -0
  118. clauderizer-0.2.0/tests/fixtures/sample_repo/docs/subsystems/calc-engine.md +13 -0
  119. clauderizer-0.2.0/tests/test_cascade.py +40 -0
  120. clauderizer-0.2.0/tests/test_engine_hardening.py +140 -0
  121. clauderizer-0.2.0/tests/test_frontmatter.py +62 -0
  122. clauderizer-0.2.0/tests/test_index.py +50 -0
  123. clauderizer-0.2.0/tests/test_init.py +87 -0
  124. clauderizer-0.2.0/tests/test_mcp_tools.py +132 -0
  125. clauderizer-0.2.0/tests/test_mutations.py +162 -0
  126. clauderizer-0.2.0/tests/test_profiles.py +32 -0
  127. clauderizer-0.2.0/tests/test_rituals.py +106 -0
  128. clauderizer-0.2.0/tests/test_sections.py +62 -0
@@ -0,0 +1,14 @@
1
+ {
2
+ "hooks": {
3
+ "SessionStart": [
4
+ {
5
+ "hooks": [
6
+ {
7
+ "type": "command",
8
+ "command": "uvx --from clauderizer clauderizer-hook"
9
+ }
10
+ ]
11
+ }
12
+ ]
13
+ }
14
+ }
@@ -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,10 @@
1
+ profile = "python"
2
+
3
+ [commands]
4
+ test = "pytest -q"
5
+ build = ""
6
+ lint = "ruff check ."
7
+ typecheck = "mypy ."
8
+
9
+ [preflight]
10
+ baseline_test_regex = "(\d+) passed"
@@ -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,12 @@
1
+ {
2
+ "mcpServers": {
3
+ "clauderizer": {
4
+ "command": "uvx",
5
+ "args": [
6
+ "--from",
7
+ "clauderizer",
8
+ "clauderizer-mcp"
9
+ ]
10
+ }
11
+ }
12
+ }
@@ -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.