Skip to content

Adopt Spec Kit, with a constitution and a CLAUDE.md - #5

Merged
adamjohnwright merged 2 commits into
mainfrom
speckit/adopt
Oct 24, 2026
Merged

adamjohnwright merged 2 commits into
mainfrom
speckit/adopt

Conversation

@adamjohnwright

@adamjohnwright adamjohnwright commented Oct 24, 2026 •

Copy link
Copy Markdown
Contributor

The first step of #4. It sets up Spec Kit so the exporter's work is specified before it is built, as in reactome/WebsiteAngular.

Contents:

  • Spec Kit 1.0.4, set up the way WebsiteAngular has it: the Claude integration, shell scripts and sequential feature numbers.
    • .specify/ holds the templates and scripts.
    • .claude/skills/ holds the /speckit-* commands.
  • A constitution (.specify/memory/constitution.md). Each principle names what breaking it has already cost this exporter:
    • output is proven against the release's published biopax.zip, by meaning;
    • the validator's reports are read, not its exit code (it always exits 0);
    • tests are seen failing before they are trusted;
    • one library serves both the release and the website;
    • no use of Reactome's production services;
    • people's names stay out of the repository.
  • CLAUDE.md: day-to-day guidance. Use Spec Kit for feature-sized work, how to prove what is written, and what to check before pushing.

No code changes.

Next: the first spec (specs/001-…), covering what #4 describes: the library and command-line split, today's content, the mode and xml:base fixes, the comparison with biopax.zip, and the validator in CI.

From an adversarial review, which ran the checks rather than reading them:

  • mvn test compiles no tests. The Kotlin plugin binds only compile, so the 42 tests in src/test have never run.
  • ktlint is not a gate. The Docker lint stage is never started by CI, and the build's ktlint:format rewrites the sources first. mvn ktlint:check on its own fails on main.
  • The validator. validateBioPAXFile is never called.

The constitution and CLAUDE.md now say so: the gates are what the first spec makes real, not checks to trust today. The rest of the review's points are corrected too:

  • the coverage gap is described as read from the code, not measured from output;
  • Principle IV is phrased as the target, not as what exists;
  • Principle V names the download directory as the one allowed source;
  • CLAUDE.md gains "This repository is public".

🤖 Generated with Claude Code

adamjohnwright and others added 2 commits October 24, 2026 02:42
Spec Kit 1.0.4 set up as reactome/WebsiteAngular has it (Claude integration,
shell scripts, sequential feature numbers), so feature-sized work here goes
specify -> plan -> tasks before code, with the specs in specs/.

The constitution's principles each name what breaking them has already cost
this exporter: output proven against the release's published biopax.zip by
meaning (the port shipped with no comparison and far less content); the
validator's reports read rather than its exit code; tests seen failing; one
library for the release and the website; no use of production services;
people's names kept out of the repository. CLAUDE.md carries the day-to-day
guidance.

Plan: issue #4.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- `mvn test` compiles no tests (the Kotlin plugin binds only compile), and
  ktlint is no gate (the lint stage never runs in CI, and the build's
  ktlint:format rewrites the sources first; main has violations). Both are
  now named as checks that do not work yet, in Principle II and in
  CLAUDE.md, and the quality gates say the first spec makes each real.
- The coverage gap is stated as read from the code (WebsiteAngular spec 015
  R9), not measured from output; species mode's duplicate sub-pathways are
  dropped as an inference.
- The validator: the standalone 6.0.0 exits 0; this repository's own 5.1.0
  call is never made.
- Principle IV is the target, not the present; Principle V says plainly that
  the release's download directory is the one allowed source and the
  production services are not; Principle VI names its cost and its scope.
- The workflow says what main's protection does and does not do; CLAUDE.md
  gains "This repository is public" and the single-PR-fix rule, as
  WebsiteAngular has them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@adamjohnwright
adamjohnwright merged commit 0e0a2b6 into main Oct 24, 2026
2 checks passed
@adamjohnwright
adamjohnwright deleted the speckit/adopt branch October 24, 2026 11:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant