Skip to content

docs(constitution): ratify the constitution of ai-plugins - #88

Merged
jigarkhwar merged 1 commit into
mainfrom
docs/constitution
Oct 20, 2026
Merged

jigarkhwar merged 1 commit into
mainfrom
docs/constitution

Conversation

@jigarkhwar

@jigarkhwar jigarkhwar commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

Ratifies the first constitution of galax-io/ai-plugins in .specify/memory/constitution.md (replacing the Spec Kit placeholder) and adds one line to AGENTS.md pointing to it.

Principles

  • 1. One authored source, generated manifests: only plugin.meta.json / marketplace.meta.json are authored; the six manifests come from npm run sync, and dialect knowledge lives only in scripts/sync-manifests.mjs.
  • 2. Portable skills: frontmatter is name + description only and reads the same in yaml and js-yaml; names unique; body at most 500 lines; description limits; sibling descriptions disjoint.
  • 3. Everything bundled is reachable and shippable: links resolve, every bundled file is reachable from SKILL.md, the file-type allowlist, fixtures never shipped.
  • 4. Every plugin change is a version and a release: semver bump plus a ## [<version>] CHANGELOG section; one release-<date> per merge from a green main; release.mjs stateless and fail-closed.
  • 5. Fail-closed, dependency-free tooling: sync/check/test on Node 22 built-ins, one Reporter per run, schema.mjs throws on unknown keywords, every new rule lands with a fixture case and message assertions.
  • 6. Each fact has one owning skill: the version matrix only in gatling-versions; body vs references/ split by invariance; gatling-migration never sees Galaxio material.
  • 7. No secrets, no machine paths: userConfig / cursor.variables, check-security.mjs, gitleaks, safe plugin scripts.

Further sections: Public Contracts and Compatibility (marketplace/plugin/skill names, reserved names, license, the libraries in catalog-info.yaml dependsOn, the vendored Spec Kit kit), Development Workflow and Quality Gates, Governance.

Evidence read

AGENTS.md, CLAUDE.md, README.md, CONTRIBUTING.md, catalog-info.yaml, package.json, cspell.json, .markdownlint-cli2.jsonc, .prettierrc.json, .prettierignore, .github/workflows/{validate,speckit,linkage}.yml, .github/CODEOWNERS, scripts/check-speckit.sh, scripts/sync-manifests.mjs (reserved names), scripts/lib/{schema,util}.mjs, plugins/galaxio-gatling/plugin.meta.json and CHANGELOG.md, docs/plugins-vs-skills.md, evals/, .githooks/pre-push, .claude/hooks/linkage-guard.sh, .specify/memory/constitution.md (placeholder), .specify/templates/plan-template.md.

Local checks: npm run format:check, npm run lint:md, npm run spell, npm run check, bash scripts/check-speckit.sh all pass (.specify/ is skipped by the prose gates, and .specify/memory/ is outside the kit hash list).

Uncertain or left out on purpose

  • Rename = MAJOR (Public Contracts): this is lifted from the CHANGELOG practice (2.0.0 renamed the plugin and marketplace; 2.1.0 and 2.3.0 say "Minor, not major: nothing installed goes away"), not from a written rule or a gate. Please confirm it.
  • "A new rule lands with a fixture case" (principle 5) tightens what AGENTS.md says about tests (message assertions) toward the ecosystem's test-first principle; no gate enforces it.
  • dependsOn library facts (Public Contracts): no check verifies skill coordinates against the released versions of picatinny/kafka/jdbc/amqp; the principle is a review rule.
  • The galaxio.io/plans.* annotations (galaxio-cli, template registry, parsec, OpenNFR, and others) are plans, not current contracts, so they are not in the constitution.
  • evals/ (behaviour evals of gatling-migration) is not a required gate in CI, so it is not stated as one.
  • The Feature milestones section of AGENTS.md mentions the labels standing / needs-feature, while the label scheme now uses type:standing / status:needs-feature; the constitution defers to the ecosystem constitution and does not restate them. Not changed here (out of scope).

Part of galax-io/galaxio-sdlc-backlog#344

🤖 Generated with Claude Code

Maintainer decisions (2026-10-20): kept: a new rule lands with a fixture case; skills must not name coordinates or APIs the released libraries do not have. Dropped: "renaming is a MAJOR bump" (the CHANGELOG entry that tells users how to reinstall stays).

The constitution holds the invariants of the plugin marketplace: one authored source with
generated manifests, portable and reachable skills, a version bump and release for every plugin
change, fail-closed dependency-free tooling, single ownership of facts across skills, and no
secrets. It also names the public contracts (marketplace, plugin and skill names) and the
vendored Spec Kit kit; AGENTS.md now points to it.

Part of galax-io/galaxio-sdlc-backlog#344

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@jigarkhwar

Copy link
Copy Markdown
Contributor Author

Merging on the maintainer's instruction, given in the chat on 2026-10-20: «мержи все 10 PR конституций». All checks passed.

@jigarkhwar
jigarkhwar merged commit c188306 into main Oct 20, 2026
7 of 8 checks passed
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