chore: update pull request - #7
Merged
Merged
Conversation
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.
Intent
Extend the /updatefirstmate skill at .claude/skills/updatefirstmate/SKILL.md (same file as .agents/skills/updatefirstmate/SKILL.md via symlink) with a new pull-only upstream-sync mode. Context: pruge/firstmate is a downstream of the true upstream kunchenguid/firstmate; our main carries local commits (the planning-family PRs) while upstream evolves daily, so syncing means merging upstream/main into our main through the no-mistakes validated gate and then running the existing local-refresh flow (bin/fm-update.sh). The current skill only knows fast-forward pulls from origin. Required changes: (1) Frontmatter description must also say the skill performs pull-only upstream sync from kunchenguid/firstmate when the captain says 'sync upstream' (or asks to bring in upstream commits). (2) A new section titled '## Upstream sync (kunchenguid/firstmate -> pruge/firstmate)' placed before '## Safety' containing this procedure: preconditions are that the captain invoked the sync, this repo has no uncommitted tracked changes, and in-flight feature PRs are preferably landed or rebased first so conflicts resolve once; ensure the upstream remote exists (git remote add upstream https://github.com/kunchenguid/firstmate.git) and git fetch upstream main; quantify divergence with git rev-list --left-right --count main...upstream/main and report it; create branch git switch -c sync/upstream-; git merge upstream/main resolving conflicts under the UNION policy which keeps every downstream addition (planning-family skills, their AGENTS.md/docs references, documentation-audiences entries) AND takes upstream's newer machinery everywhere else, preferring upstream where both edited the same lines unless doing so erases a planning-family reference, never deleting downstream-only files; validate locally with bin/fm-lint.sh then full bin/fm-test-run.sh with green required before push; push THROUGH THE GATE with git push no-mistakes sync/upstream- so the pipeline validates independently and opens the PR with its body signature; the captain holds merge authority and merges with a MERGE COMMIT (--merge), never squash, because squashing would orphan upstream ancestry and break future syncs; after landing run bin/fm-update.sh (the existing refresh flow) so every running home fast-forwards onto synced main, re-reads AGENTS.md when told, and nudges secondmates. (3) The Safety section gains a line that upstream is pull-only: nothing is ever pushed to kunchenguid/firstmate. Constraints: keep the existing origin fast-forward flow untouched; style matches the file's voice with one sentence per line and plain dash. Acceptance criteria: description mentions the upstream sync trigger; the new section contains all nine procedure steps plus the pull-only safety line; existing sections unmodified beyond the description.
What Changed
Final changed paths and statuses:
Risk Assessment
✅ Low: The change is purely additive skill documentation that satisfies every required acceptance criterion verbatim, leaves existing behavior untouched, and carries only a minor informational clarity gap.
Testing
Validated the docs-only skill change by diffing base vs target to prove existing sections were unmodified beyond the description, confirming the symlinked .claude/.agents views match, parsing the frontmatter as YAML to assert the upstream-sync trigger wording, running a focused 24-assertion acceptance verifier against the delivered SKILL.md text (the file itself is the agent-consumed interface), and exercising the real documentation-audience consumer plus its regression test — all green, with output captured as evidence.
Evidence: Focused acceptance-criteria verification of the upstream-sync skill section (24/24 pass)
Source: Focused acceptance-criteria verification of the upstream-sync skill section (24/24 pass)
Evidence: Reusable acceptance verifier script for the updatefirstmate upstream-sync contract
Source: Reusable acceptance verifier script for the updatefirstmate upstream-sync contract
Pipeline
Updates from git push no-mistakes
✅ **intent** - passed
✅ No issues found.
✅ **Rebase** - passed
✅ No issues found.
.agents/skills/updatefirstmate/SKILL.md:82- Step 4 ('git switch -c sync/upstream-<YYYY-MM-DD>') branches from current HEAD but never states that the agent must first be on main; the preconditions only cover uncommitted changes. If followed while on another branch, the merge base would silently be wrong. A clarifying sentence ('Start on main') would make the invariant explicit.✅ **Test** - passed
✅ No issues found.
git diff 8802737..06624d5 -- .agents/skills/updatefirstmate/SKILL.md— confirmed the only hunks are the added description sentence, the new section inserted immediately before ## Safety, and one appended Safety bullet; no existing section text was modifieddiff .claude/skills/updatefirstmate/SKILL.md .agents/skills/updatefirstmate/SKILL.md— symlinked views are byte-identicalYAML frontmatter parse via python3+PyYAML — description mentions pull-only upstream sync from kunchenguid/firstmate triggered by "sync upstream" / bringing in upstream commits, and name remains updatefirstmatebash verify-upstream-sync-skill.sh <repo>(focused acceptance verifier, evidence dir) — 24/24 assertions passed covering exact section title, placement before ## Safety, exactly nine numbered steps, all required commands (remote add/fetch, rev-list divergence count, dated sync branch, merge, fm-lint.sh, fm-test-run.sh, git push no-mistakes), UNION policy with planning-family/documentation-audiences carve-outs and never-delete-downstream-files rule, --merge-never-squash rationale, post-landing bin/fm-update.sh refresh outcomes, and the pull-only Safety linebin/fm-doc-audience-check.sh— real consumer of tracked *.md surfaces reports ok (surfaces=77, local_links=266)bash tests/fm-documentation-audiences.test.sh— documentation-inventory regression suite passes✅ **Document** - passed
✅ No issues found.
✅ **Lint** - passed
✅ No issues found.
✅ **Push** - passed
✅ No issues found.