Skip to content

feat: jrag-annotations — brownfield annotations as a Maven Central artifact - #480

Merged
HumanBean17 merged 12 commits into
masterfrom
feat/jrag-annotations-artifact
Sep 13, 2026
Merged

HumanBean17 merged 12 commits into
masterfrom
feat/jrag-annotations-artifact

Conversation

@HumanBean17

Copy link
Copy Markdown
Owner

Summary

The brownfield annotation definitions (@CodebaseRole, @CodebaseCapability, @CodebaseHttpRoute, @CodebaseAsyncRoute, @CodebaseHttpClient, @CodebaseProducer + enums) existed only as fenced Java blocks in docs/CONFIGURATION.md §4.3 and test fixtures. This ships them as a real dependency: io.github.humanbean17:jrag-annotations on Maven Central, independently versioned (initial 1.0.0), SOURCE-retained so consumers declare it provided / compileOnly — nothing reaches runtime bytecode. No parser changes: the indexer matches simple names and reads attributes at usage sites, so JAR-provided definitions are invisible to it.

  • annotations/ — canonical, compilable Maven module (16 sources + pom; Java 8, Central-complete metadata; release profile = flatten + GPG + Central Portal publish). Plain mvn verify needs no credentials.
  • tests/_meta/test_annotations_module_consistency.py — three-way drift tripwire: module ↔ parser vocabulary (ast_java frozensets, java_ontology VALID_*), module ↔ §4.3 docs blocks, module ↔ fixtures; plus a docs-mention tripwire. Vocabulary growth now fails tests instead of silently diverging.
  • .github/workflows/release-annotations.yml — manual-dispatch Maven Central release (version input, regex + Central-search idempotency guards, annotations-v* tags — disjoint from Python v*), with the one-time setup runbook in the header. 7 structural tests pin its invariants.
  • test.yml — blocking annotations-build job (mvn verify on every PR).
  • Docs — §4.3 leads with the Maven/Gradle dependency + compatibility line + Kotlin note; copy-paste stays as the zero-dependency alternative. CODEBASE_REQUIREMENTS.md §A.2.1 and AGENTS.md Publishing updated (the artifact is a third channel, outside the dual-PyPI sync rule).

Spec: docs/superpowers/specs/active/2026-09-13-jrag-annotations-artifact-design.md · Plan: docs/superpowers/plans/active/2026-09-13-jrag-annotations-artifact.md

Test evidence

  • All 12 new tests pass (tests/_meta/…consistency, tests/package/…release_annotations_workflow); mvn -B -f annotations/pom.xml verify → BUILD SUCCESS (jar + sources + javadoc).
  • Full suite: 9 failed / 2157 passed / 40 skipped — all attributed, none from this branch:
    • 6× test_publish_skill_runbook — pre-existing on master (hardcoded .claude/skills/publish-pip/SKILL.md; tracked path is .agents/skills/... since the claude→agents rename). Fails identically on clean master; deserves a separate one-line fix.
    • 2× test_release_sh — assert a clean tree; failed only because the shared dev worktree carried another session's uncommitted edits. Pass on clean checkouts.
    • 1 parallel-run failure did not reproduce in targeted reruns.

After merge

First 1.0.0 release needs the one-time setup from the workflow header runbook: Central Portal namespace verification (io.github.humanbean17), GPG signing key, and the four secrets in the release environment — then dispatch release-annotations.yml with version=1.0.0.

@HumanBean17
HumanBean17 merged commit 3503fa6 into master Sep 13, 2026
5 checks passed
@HumanBean17
HumanBean17 deleted the feat/jrag-annotations-artifact branch September 13, 2026 16:01
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