You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+9Lines changed: 9 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,9 +11,18 @@ All notable changes to this project are documented here, following [Common Chang
11
11
- Add the five quench dispatch agents: `bdd-scenario-writer`, `tdd-test-generator`, `playwright-e2e-tester`, `fastapi-implementer`, `labcoat`
12
12
- Add `install.sh` for symlinking skills and agents into a consumer repo's `.claude/`
13
13
- Vendor [obra/superpowers](https://github.com/obra/superpowers) v4.3.1 and [github/spec-kit](https://github.com/github/spec-kit) v0.10.1 as pinned submodules
- Add MIT `LICENSE` (vendored submodules retain their upstream licenses)
16
+
- Add CI workflow: shellcheck + syntax checks, alias-symlink and frontmatter integrity, install/uninstall smoke test on Ubuntu and macOS (including stock bash 3.2), and a changelog-updated gate on PRs
17
+
- Add `tests/smoke.sh` — end-to-end installer test against a throwaway consumer repo (idempotency, ownership guarantee, pruning, verify, dry-run, uninstall)
18
+
- Add `install.sh --verify` (link health report for bug reports) and `--dry-run` (print planned actions without touching anything)
19
+
- Add stale-link pruning: install now sweeps damascus-owned links whose names are no longer shipped; uninstall removes every owned link, not just known names
20
+
- Add Dependabot config for monthly vendor-submodule and GitHub Actions bumps, and a bug-report issue template
21
+
- Add README sections: requirements, pinned-tag install, upgrading, support posture and licensing; document the release ritual and submodule bump policy in CLAUDE.md
14
22
15
23
### Changed
16
24
25
+
- Make `install.sh` portable to bash 3.2 / stock macOS (replace `declare -A` and `readlink -f` with portable equivalents)
17
26
- Replace the external-API review gate in `temper` with a fully local adversarial panel (3 critic lenses + judge; A++ = two consecutive zero-blocking rounds, max 5 rounds)
Copy file name to clipboardExpand all lines: CLAUDE.md
+14-7Lines changed: 14 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,17 +4,24 @@ Guidance for Claude Code when working in this repository.
4
4
5
5
## What this repo is
6
6
7
-
Damascus packages the **SPDD pipeline** (forge → anvil → temper → quench, orchestrated by smithy) as Claude Code skills, consumed by other repos as a `vendor/damascus` submodule via `install.sh`. There is no build step or test runner — "running" this repo means exercising `install.sh` and the SKILL.md files.
7
+
Damascus packages the **SPDD pipeline** (forge → anvil → temper → quench, orchestrated by smithy) as Claude Code skills, consumed by other repos as a `vendor/damascus` submodule via `install.sh`. There is no build step — "running" this repo means exercising `install.sh` and the SKILL.md files; `tests/smoke.sh` is the test suite.
8
8
9
9
## Working here
10
10
11
11
- The five stage skills under `skills/` are the product. Keep them concise; every behavioral contract lives in the SKILL.md body, not in external docs.
12
12
-`skills/<alias>` entries are relative symlinks to stage dirs — preserve them.
13
-
-`vendor/superpowers` and `vendor/spec-kit` are **pinned submodules**. Bump deliberately (checkout a tag, commit the pointer); never edit vendor content.
14
-
-`install.sh` must stay idempotent and only ever touch symlinks that resolve into this checkout. Test with a throwaway repo:
- Every PR updates `CHANGELOG.md` under `[Unreleased]` (Common Changelog categories).
13
+
-`vendor/superpowers` and `vendor/spec-kit` are **pinned submodules**. Bump deliberately (checkout a tag, commit the pointer); never edit vendor content. Dependabot opens monthly bump PRs — only merge bumps that land on an upstream **tag**, and when superpowers adds or renames skills, re-check the DENY/KEEP/CONDITIONAL table in the README (a new upstream skill overlapping a stage becomes DENY; a renamed KEEP skill needs the `SUPERPOWERS_KEEP` array in `install.sh` updated — CI's smoke test fails until it is).
14
+
-`install.sh` must stay idempotent, bash 3.2 compatible (no `declare -A`, no GNU-only flags without a fallback), and only ever touch symlinks that resolve into this checkout. `tests/smoke.sh` encodes these guarantees against a throwaway repo — run it locally before pushing; CI runs it on Ubuntu and macOS (including stock bash 3.2).
15
+
- Every PR updates `CHANGELOG.md` under `[Unreleased]` (Common Changelog categories). CI enforces this.
19
16
- Branch → PR → squash merge. Never push to `master` directly.
20
17
- The temper stage is **local-only by design** — do not reintroduce external-API review dependencies.
18
+
19
+
## Releasing
20
+
21
+
Semver. Breaking changes to a skill contract or to `install.sh` behavior bump the major version (the minor version while pre-1.0). To cut a release from `master`:
22
+
23
+
1. Move the `[Unreleased]` section of `CHANGELOG.md` under a `## [X.Y.Z] - YYYY-MM-DD` heading (via a normal PR).
24
+
2.`git tag vX.Y.Z && git push origin vX.Y.Z`
25
+
3. Create a GitHub Release from the tag; the body is that changelog section verbatim.
26
+
27
+
Consumers pin tags (see the README install/upgrading sections) — never point them at `master`.
Copy file name to clipboardExpand all lines: README.md
+36-2Lines changed: 36 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -32,14 +32,22 @@ Every stage halts at its gate for user signoff. State lives in the disk artifact
32
32
33
33
Temper needs **no external API**. Each round, three critic subagents with distinct lenses (completeness, feasibility, testability) try to *refute* the spec triplet; a judge dedupes findings and assigns a rating. Blocking findings are applied, the round is logged, and the loop repeats. **A++ requires two consecutive rounds with zero blocking findings** (max 5 rounds, then escalate). The full trail lives in `specs/NNN-<slug>/review.md`, append-only.
34
34
35
+
## Requirements
36
+
37
+
- git ≥ 2.13 (submodules)
38
+
- bash 3.2+ (`install.sh` runs on stock macOS bash)
39
+
- a filesystem with symlink support
40
+
35
41
## Install
36
42
37
-
From your repo root:
43
+
From your repo root, pinning a release tag:
38
44
39
45
```bash
40
46
git submodule add <this-repo-url> vendor/damascus
47
+
git -C vendor/damascus checkout v0.1.0 # pin a release, not a moving branch
Breaking changes to skill contracts or `install.sh` behavior are called out in [CHANGELOG.md](CHANGELOG.md) and, past 1.0, bump the major version.
52
80
53
81
## Vendored Submodules
54
82
@@ -90,6 +118,12 @@ The skills degrade gracefully — each of these is used when present and skipped
90
118
-**Phase signalling** — if your repo has a status-bar helper (e.g. tmux), quench calls it at red/amber/green transitions
91
119
-**Drift detection** — if a pre-commit hook flags code changes without spec changes, smithy halts on it
92
120
121
+
## Support & license
122
+
123
+
Maintained by one person; issues are welcome and responses are best-effort. Please include your OS, `bash --version`, and `install.sh --verify` output when reporting installer problems.
124
+
125
+
MIT licensed (see [LICENSE](LICENSE)). The vendored submodules `vendor/superpowers` and `vendor/spec-kit` retain their own upstream licenses and are not relicensed by this repo.
126
+
93
127
## Credits
94
128
95
129
- Martin Fowler — [*Structured Prompt-Driven Development*](https://martinfowler.com/articles/structured-prompt-driven/) (REASONS Canvas, Golden Rule)
0 commit comments