Conversation
…elopment - Promote buried mandates to SKILL.md invariants: AI-assisted disclaimer header, verification artifacts (checklist + verify.sh + hooks), and the live-broker heads-up; extend the doc-grounding invariant to ban substitute channels and the version invariant to ban the solrsearch index - Surface the Step 0 door-question gate and the environment-discovery rule (a found broker/config never answers a question) in jcsmp.md, design-mode.md, and implement-mode Step 0 - Split implement-mode.md into a core file plus three per-leaf wiring files so the core fits a single Read; state the generation file-output contract up front and move the checklist write into Step 4 generation output - Redesign verification to be shape-agnostic: verify.sh gains an app stage driven by a generated verify-hooks.sh (START_CMD/TRIGGER_CMD/READY_MARKER/PASS_MARKER), a warn-only conformance preflight, and a live-run heads-up line; curl may trigger but never render the verdict - Replace the log4j2 2.26.0 pin with outcome rules: resolve the highest stable 2.x from authoritative metadata, framework-owned SLF4J backends win, config file required, com.solacesystems loggers never silenced, and the 2.17.1 Log4Shell floor enforced as a check - Bind doc grounding to each design question and redefine the Grounding docs field to fetched-pages-only; add a Generation conformance group to the verification checklist - Remove the mandated Core Concepts intro from SKILL.md and prerequisites.md; prerequisites is now broker acquisition only - Solace Suggested decoupling: keep the two-project default but require a surfaced conflict with three resolutions on single-deliverable asks; never merge silently - Rename the Java API Release Notes link to JCSMP API Release Notes (the JAVA_API_RN download serves the JCSMP release notes) and point sample logging comments at the Step 3 rule - Root-caused from 10 analyzed sessions; violations and fixes tracked in EBP-2889
- Key mode routing on the design contract instead of request phrasing; a build prompt without a contract enters Design first, including web and embedded shapes - Add the design-contract gate to jcsmp.md and make the summary a hard precondition in Implement Step 2 (valid sources: same-session summary, explicit summary in chat, saved solace-design.md) - Add the topology rule for edits to existing apps: topology-changing edits re-enter Design, mechanical edits go straight to Implement - Add Design mode's fully-specified path: a prompt that answers every tree question gets one merged confirm at close-out - Dedupe the broker-access question in Implement Step 1 when Design Step 0 already confirmed it this session - Keep the door question an isolated Implement Step 0; a confirmed design never answers it
- Add the comments-follow-their-code contract to implement-mode Step 4: a construct carried from a sample keeps that construct's comment (names adapted), dropped demo harness takes its comments with it, and fresh messaging code that applies a documented practice gets a short comment naming it - Add a binary item to the checklist's Generation conformance group so a run that strips the comments fails its own checklist; keep it outside the preflight's first-four mechanical checks - Align the Step 6 group description with the new non-preflight item - Evidence: a generated embedded Direct Pub/Sub project carried sample constructs without their attached best-practice comments, while every explicitly mandated one-line comment survived (slot-bound rules get followed; unbound ones do not)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What is the purpose of this change?
An analysis of 10 real developer sessions that used the solace-application-development skill found 10 recurring violations of the skill's own instructions (the door question skipped, the disclaimer header dropped, verify.sh never run, the checklist never written, live brokers hit without warning, unfetched citations, a dropped logging pin, a stale version source). The root causes were structural: mandatory rules buried in one lazy-loaded file too large for a single read, a verification contract that only fits the two-CLI shape, rules with no execution slot, and self-contradictions. This change restructures the skill so the rules sit where every session reads them and become mechanically checkable.
How is this accomplished?
Promoted the buried mandates to SKILL.md invariants (4-6): the AI-assisted disclaimer header on every generated source file, the always-emitted verification artifacts, and the live-broker heads-up; extended Invariant 2 to ban substitute grounding channels and Invariant 3 to name the authoritative lookup and ban the solrsearch index
Surfaced the Implement Step 0 door-question gate and the environment-discovery rule (a running broker or existing config.json never answers a question) at the jcsmp.md front door, in design-mode's handoff, and as explicit Step 0 counters
Split implement-mode.md into a core file (~12k tokens, fits one Read; the old file exceeded the 25k-token Read cap so its later steps were unreachable) plus three per-leaf wiring files; stated the generation file-output contract up front and moved the solace-verification-checklist.md write into Step 4 generation output
Made verification shape-agnostic: verify.sh gains an
appstage driven by a generated verify-hooks.sh (START_CMD / TRIGGER_CMD / READY_MARKER / PASS_MARKER), a warn-only conformance preflight (checklist present, disclaimer headers, log4j floor, sol-jcsmp freshness), and a live-run heads-up; curl may trigger a publish but never renders the verdict. The six existing stages are unchangedReplaced the log4j2 2.26.0 pin with outcome rules: resolve the highest stable 2.x from authoritative metadata, a framework-owned SLF4J backend wins (never two backends), a config file is required, com.solacesystems loggers are never silenced, and the 2.17.1 Log4Shell floor is enforced as a check, removing the contradiction with Invariant 3
Bound doc grounding to each design question and redefined the Grounding docs field to fetched-pages-only; added a Generation conformance group to the checklist template
Removed the mandated Core Concepts intro (0/10 compliance) from SKILL.md and prerequisites.md; prerequisites is now broker acquisition only
Solace Suggested decoupling keeps the two-project default but requires a surfaced conflict with three resolutions on single-deliverable asks; silent merges are forbidden
Renamed the "Java API Release Notes" link to "JCSMP API Release Notes" (verified: the JAVA_API_RN download serves the JCSMP release-notes file) and pointed the samples' logging comments at the Step 3 rule instead of granting a free swap
Routed every build request through Design mode first: mode routing now keys on the design contract, not request phrasing. jcsmp.md gains a design-contract gate (three valid sources: a same-session confirmed summary, an explicit summary supplied in chat, a saved solace-design.md) and a topology rule for edits to existing apps (topology-changing edits re-enter Design; mechanical edits go straight to Implement). Implement Step 2 makes the eight-field summary a hard precondition. Design mode gains a fully-specified path that resolves a fully stated build prompt in ONE merged confirm at close-out. Implement Step 1 no longer re-asks whether a broker exists when Design Step 0 confirmed it in the same session. The door question stays an isolated Implement Step 0
Bound the samples' best-practice comments to generation: implement-mode Step 4 gains the comments-follow-their-code contract (a construct carried from a sample keeps its comment with names adapted; dropped demo harness takes its comments with it; fresh messaging code that applies a documented practice gets a short comment naming it; the mandated one-line comments are unaffected). The checklist's Generation conformance group gains a matching binary item, placed outside the preflight's first-four mechanical checks
Anything reviews should focus on/be aware of?