Skip to content

docs(agents): conventional commits and subagent workflow for agents - #385

Open
TheMeinerLP wants to merge 4 commits into
mainfrom
docs/agent-guidance
Open

TheMeinerLP wants to merge 4 commits into
mainfrom
docs/agent-guidance

Conversation

@TheMeinerLP

Copy link
Copy Markdown
Collaborator

Summary

  • openspec/config.yaml (new): per-artifact OpenSpec rules that require
    Conventional Commits for every generated proposal and task, matching what
    release-please reads.
  • AGENTS.md: replaces the vague "follow the existing style" commit rule
    with an explicit Conventional Commits requirement (type(scope): summary,
    the exact types from release-please-config.json, ! + BREAKING CHANGE:
    footer for breaking changes, and a note that PR titles are squash-merged
    onto main). Also fixes two statements that had gone stale on main: lint
    now has pnpm lint / pnpm lint:fix scripts, and a Vitest suite exists
    under tests/ and runs in CI via pnpm test.
  • CLAUDE.md (new): imports AGENTS.md and adds only what it lacks —
    exact vitest invocations, test-environment specifics, deployment/image
    provider facts, the OpenSpec planning workflow, and a short
    "Working with subagents" section describing how orchestration is split
    across the main session and Sonnet/Haiku subagents.

Rationale

  • Pull requests in this repository are squash-merged, so the PR title is the
    only commit message release-please ever sees on main; it must be a valid
    Conventional Commit or the version bump and changelog break.
  • Spelling this out once in AGENTS.md (read by every agent and human
    contributor) and enforcing it in openspec/config.yaml (read while an
    agent drafts OpenSpec artifacts) removes a recurring source of
    release-please mismatches.
  • A concise CLAUDE.md that only states what AGENTS.md doesn't lowers the
    token cost of every Claude Code session in this repo, instead of
    duplicating or contradicting AGENTS.md.

Verification

  • openspec doctor → OpenSpec root: ok.
  • openspec list --json → succeeded, listed the three existing changes.
  • node -e YAML parse of openspec/config.yaml → parsed with top-level keys
    schema, rules, operations.
  • pnpm install --frozen-lockfile → succeeded (node_modules was missing).
  • pnpm quality → ESLint errors 192, warnings 17, TypeScript errors 3 — all
    equal to baseline, no regression.
  • pnpm exec vitest run tests/architecture → 19 files / 76 tests passed.
  • Every factual claim in CLAUDE.md (D1 binding, image provider fallback,
    i18n prefix strategy, .nuxtrc churn, @vitest-environment usage,
    md3-tokens.mjs --check) was checked directly against nuxt.config.ts,
    vitest.config.ts, scripts/md3-tokens.mjs and the tests/ tree on this
    branch. Stale points from the original draft were dropped: the MD3
    PENDING_MIGRATION list and pre-MD3 legacy tokens no longer exist on
    main (removed in chore(design-system): remove the legacy tokens and document MD3 #371), the season layer (layers/season,
    feat/halloween-season) isn't merged and was left out entirely, and the
    edge-caching numbers are covered by AGENTS.md's own "Caching and SEO
    signals" section instead of being repeated.

https://claude.ai/code/session_012ZzvomAnwjAS3et96Avp7s

Configures OpenSpec's per-artifact rules so proposal, task and archive
work is generated with Conventional Commits messages and titles from the
start, matching what release-please expects to read from squash-merged
pull requests.

Claude-Session: https://claude.ai/code/session_012ZzvomAnwjAS3et96Avp7s
Replaces the vague "follow the existing style" guidance with an explicit
Conventional Commits rule (type(scope): summary, allowed types from
release-please-config.json, breaking-change footer) since pull requests
are squash-merged and release-please reads the PR title as the commit on
main. Also corrects two stale statements: lint has pnpm lint/lint:fix
scripts, and a Vitest suite now exists under tests/ and runs in CI.

Claude-Session: https://claude.ai/code/session_012ZzvomAnwjAS3et96Avp7s
Adds a root CLAUDE.md that imports AGENTS.md and layers on only what it
lacks: exact vitest invocations, test-environment details, deployment
and image-provider facts, the OpenSpec planning workflow, and how work
should be split across main-session orchestration and Sonnet/Haiku
subagents. Every claim was checked against the current tree so nothing
stale (edge-cache numbers, the finished MD3 migration, the unmerged
season layer) carried over.

Claude-Session: https://claude.ai/code/session_012ZzvomAnwjAS3et96Avp7s
CLAUDE.md overstated openspec/config.yaml as enforcing Conventional
Commits on every artifact and operation. It only adds rules to the
proposal and tasks artifacts and advisory guidance for apply and
archive; nothing in it enforces anything.

Claude-Session: https://claude.ai/code/session_012ZzvomAnwjAS3et96Avp7s
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Sep 24, 2026 •

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
launchpad 8fb2124 Commit Preview URL

Branch Preview URL
Sep 24 2026, 07:17 AM

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