Add reconcile-opsmill preset overriding speckit.reconcile.run#4
Draft
polmichel wants to merge 8 commits into
Draft
Add reconcile-opsmill preset overriding speckit.reconcile.run#4polmichel wants to merge 8 commits into
polmichel wants to merge 8 commits into
Conversation
New preset in the presets/ collection (v1.1.0) that overrides
speckit.reconcile.run, the drift-fixing command of the
stn1slv/spec-kit-reconcile extension. v1.0.0 of the preset ships the
upstream command body verbatim (MIT, license vendored alongside) as the
baseline for later OpsMill-specific adaptations.
The override only registers when the reconcile extension is installed
in the consumer repo; removing the preset restores the extension's
command. Verified end-to-end against specify 0.8.8 in a scratch
project (install extension -> add preset -> skill source flips to
preset:reconcile-opsmill with {SCRIPT} resolved -> remove preset ->
source reverts to extension:reconcile).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Upstream parks orphan remediation tasks under a '## Remediation: Gaps' heading. Core spec-kit (tasks-template.md) and the taskstoissues-jira preset structure tasks.md strictly as '## Phase <N>:' blocks — the Jira fan-out splits on those headers only, so tasks under any other heading never become issues. Append a '## Phase <max+1>: Remediation — Gap Report' block instead. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Upstream redefines [P] on remediation tasks as a priority/urgency flag. In core spec-kit (tasks-template.md: 'Can run in parallel') and the taskstoissues-jira preset, [P] is parallelism taxonomy preserved verbatim on task lines — stamping it as 'urgent' corrupts that signal. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Upstream's CRITICAL-conflict check only reads .specify/memory/constitution.md. The OpsMill documentation system promotes durable MUSTs into dev/guidelines/ and decisions into dev/adr/ (via /speckit.opsmill.extract) — remediation items must be checked against those constraints too. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
In the OpsMill flow, phases are usually fanned out to Jira by the taskstoissues-jira preset before implementation, so reconcile-appended remediation tasks exist only in tasks.md. Surface that in the report's Next Step when dev/jira.yml exists — with an explicit warning not to re-run /speckit.taskstoissues wholesale (one issue per phase with unchecked tasks, not idempotent). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
/speckit.opsmill.extract drops EXTRACTED.md in the spec directory once durable content is promoted to dev/knowledge, dev/guidelines, dev/adr. Reconcile amends spec.md after the fact, so flag the marker in the Sync Impact Report and suggest a re-extract once remediation lands. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Preset version 1.0.0 stays in history as the verbatim upstream baseline; 1.1.0 is what the collection ships. Preset README, presets CHANGELOG, and top-level README now describe the five adaptations instead of promising them for later. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The baseline was fetched from stn1slv/spec-kit-reconcile @ 886f1dd; drop the incidental cross-references to other vendored copies so the documented lineage is strictly upstream -> opsmill preset. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Contributor
Author
Code review summary (
|
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
New preset
presets/reconcile-opsmill/that overrides/speckit.reconcile.run— the drift-fixing command provided by Stanislav Deviatov's stn1slv/spec-kit-reconcile extension. The override only registers when thereconcileextension is installed in the consumer repo, and removing the preset restores the extension's original command.The first commit lifts the upstream command body verbatim as the baseline; each adaptation is its own commit so the diff against upstream stays reviewable.
OpsMill adaptations (one commit each)
## Phase <N>:blocks (new## Phase <max+1>: Remediation — Gap Reportwhen none fits) instead of upstream's## Remediation: Gapsheading, which thetaskstoissues-jirafan-out silently skips.[P]semantics —[P]means "can run in parallel" (spec-kit core), not upstream's priority/urgency flag.dev/guidelines/and decisions fromdev/adr/, not just.specify/memory/constitution.md.dev/jira.ymlexists, the Sync Impact Report flags that remediation tasks have no Jira issue yet and warns against wholesale/speckit.taskstoissuesre-runs (not idempotent).EXTRACTED.mdflags that knowledge promoted by/speckit.opsmill.extractmay be stale.Verification
Smoke-tested against
specify0.8.8 in a scratch project: extension install → preset add (skill source flips topreset:reconcile-opsmill,{SCRIPT}resolved, all five adaptations present in the registered body) → preset remove (source reverts toextension:reconcile).🤖 Generated with Claude Code