Skip to content

Align repository with dms-conventions: add CLAUDE.md and document commit/PR conventions #2005

Description

@dmccoystephenson

An audit of this repository against the engineering conventions published at https://github.com/dmccoystephenson/dms-conventions has been completed. Every convention document was read in full, and the repository was then compared against ALIGNMENT_CHECKLIST.md item by item. The findings are recorded below so that they can be picked up in a later cycle.

Most of the repository was found to be aligned. README.md, CONTRIBUTING.md, .github/ISSUE_TEMPLATE/, .github/CODEOWNERS, and the build and release workflows each satisfy their respective checklists in full. Gaps were found in two sections, totalling 13 checklist items. Four additional accuracy defects were also observed and are listed separately below.

It should be noted that several of the convention documents were themselves generalized from this repository, which is why the README, CONTRIBUTING, issue-template, CODEOWNERS, and CI sections score cleanly.

Section 1 of 2 - CLAUDE.md (8 gaps)

Reference: docs/CLAUDE_MD_STRUCTURE.md

No CLAUDE.md file exists in the repository root. The closest equivalent, .github/copilot-instructions.md, is addressed to GitHub Copilot rather than to Claude Code. Although it does cover the stack, project structure, coding conventions, and contribution workflow, it does not cover the research-grounding, testing-changes, or documentation-sources-of-truth sections that the convention requires, and it is not read from the repository root by Claude Code.

The following items resolve to N:

  • CLAUDE.md exists in the repository root
  • A "what this repo is" section is present
  • A conventions section describing repository-specific rules is present
  • A "what belongs here vs. elsewhere" section is present. This is considered applicable, given that the plugin sits in a constellation with Ponder, Fiefs, and Currencies.
  • The way design decisions are grounded is stated, whether by a research doc, by prior art, or by an explicit statement that there is none
  • A testing section describing how changes are validated is present
  • A commit and PR conventions section is present
  • A documentation-sources-of-truth table is present

One further item resolves to N/A: the rule-promotion checklist, which applies only to template or source-of-truth repositories.

Much of the required content already exists elsewhere and can be lifted rather than invented. The stack, project structure, and coding conventions are recorded in .github/copilot-instructions.md; the test command is recorded in README.md and CONTRIBUTING.md; and the documentation set to be covered by the sources-of-truth table is COMMANDS.md, CONFIG.md, FACTION_FLAGS.md, USER_GUIDE.md, FAQ.md, DATABASE_QUERYING.md, DEPENDENCY_USAGE.md, and CHANGELOG.md.

Section 2 of 2 - Commit and PR conventions (5 gaps)

Reference: docs/COMMIT_PR_CONVENTIONS.md

None of the following is documented in any file in this repository. A search across all markdown files for the terms imperative, squash, "Closes #", "feature/", and Co-Authored-By returned no matches.

  • A branch-prefix convention is documented, such as feature/ for a new capability and fix/ for a correction. CONTRIBUTING.md currently states only: "Create a new branch for your changes using git checkout -b . Make sure to name your branch something that is related to the issue you are working on." The most recently merged branch, copilot/add-github-actions-workflow, uses neither prefix.
  • A commit-message style is documented, namely imperative mood with no trailing period.
  • A PR merge strategy is documented and is consistent with actual history. The current HEAD commit is a merge commit ("Merge pull request Add GitHub Actions workflow to build and deploy plugin to OMCSI #1948 from ..."), so merge commits appear to be the established strategy, but this is nowhere stated. Either strategy is permitted by the convention; what is required is that one be chosen and written down.
  • Pull requests reference the issues they close using "Closes #N". Both CONTRIBUTING.md ("link the related issue using #(number)") and .github/copilot-instructions.md ("Reference the related GitHub issue in every pull request description using #") specify a bare reference, which does not auto-close the issue on merge.
  • The HEREDOC plus Co-Authored-By trailer convention for agent-authored commits is documented. This item is treated as applicable rather than N/A, because agent-authored commits do land in this repository, as the copilot/ branch cited above shows.

A commit-and-PR-conventions section inside the new CLAUDE.md would be the natural home for all five, cross-referenced from CONTRIBUTING.md so that contributors encounter the rules before their first pull request.

Additional accuracy defects observed

None of these maps to a checklist item that resolves to N, but each is a documented value that no longer matches the repository.

  1. .github/ISSUE_TEMPLATE/bug_report.md offers plugin-version checkboxes for v5.3.0, v5.4.0, and v5.5.0 only, whereas build.gradle line 10 declares version "6.0.0-SNAPSHOT-7-25-2026". No 6.x option is available to a reporter. The Java-version checkboxes likewise still offer 8, 11, and 16 alongside 17, although JDK 17 is what the build and both workflows target.
  2. CONTRIBUTING.md lists "A basic understanding of Java" under Requirements, but the source tree is Kotlin: src/main/kotlin/ and src/test/kotlin/, with the Kotlin JVM plugin declared at build.gradle line 2.
  3. .github/workflows/build.yml is still triggered by pushes to the retired develop branch, via "branches: [ main, develop ]", although .github/copilot-instructions.md describes that branch as retired in favour of trunk-based development on main.
  4. The README subsection "Looking to create an add-on plugin?", which documents the External API surface, is nested under the Testing section. README_STRUCTURE.md treats External API and Extension Development as an optional section of its own rather than as testing content.

Sections found to be aligned

These are recorded for completeness, so that a later cycle need not re-audit them.

  • README.md: all ten required sections are present and appear in the documented order, and the License section correctly references the existing LICENSE file.
  • CONTRIBUTING.md: all nine required items are present, including the localization instructions for src/main/resources/lang and a branch workflow that correctly targets main.
  • Issue templates: bug-report, feature-request, and the domain-specific API-call-request templates are all present with the required frontmatter, and each bracketed title tag matches its labels entry.
  • CODEOWNERS: the minimal single-maintainer form is correct for this repository, and no path-scoped entries are warranted.
  • CI: build.yml follows checkout, then toolchain setup, then dependency install via the pinned Ponder 2.0.0 publishToMavenLocal step, then build and test; JDK 17 is pinned explicitly; the Docker image build is run as a parallel job; and permissions are limited to contents: read. release.yml is triggered on release creation and declares contents: write, which is the minimum needed to upload the shadow JAR.
  • LICENSE: present, referenced by the README, and left untouched by this audit.

Scope

No fix has been implemented as part of this audit, and no LICENSE file has been added, changed, or removed. No dev-loop skill file was found in this repository, since neither a .claude/ directory nor any file matching dev-loop exists, so this issue has been written to be actionable by whichever agent or contributor picks it up next.

This issue body was drafted during a Gardener session (https://github.com/Stephenson-Software/gardener).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions