ci(skill-check): scan the docs a contributor reads #229
Open
logan
wants to merge 1 commits from
docs/220-skill-check-scope into main
pull from: docs/220-skill-check-scope
merge into: :main
:main
:fix/146-stub-etxtbsy
:fix/175-wizard-follows-the-library
:fix/231-setter-rollback
:fix/197-duplicate-column-label
:docs/225-fixtures-wav-tags
:docs/220-skill-check-scope
:test/217-fixture-names-in-queue-selection
:fix/216-riff-parse-allocation
:fix/170-queue-header-action-names
:fix/210-nav-sheet-scroll-affordance
:docs/50-readme-landing-page
:feat/65-art-prefetch-ahead
:feat/71-more-as-a-bottom-sheet
:feat/54-native-touch-feel
:feat/67-entity-links-into-menus
:test/196-visual-tier-gates
:fix/138-ui-test-storage-leak
:fix/104-wav-tags-read
:fix/207-sheet-scroll-affordance
:fix/204-ui-visual-update-filter
:pi-agent-backlog-automation
:63-touch-model-phase-2
:63-android-touch-model
:186-touch-targets-settings
:186-touch-targets-page-header
:187-seek-bar-hit-area
:189-190-explore-correctness
:135-android-underrun-instrumentation
:51-android-small-screens
:fix/171-phone-queue-scrim
:fix/137-touch-only-affordances
:fix/154-nested-css-check
:feat/58-mini-player-progress-line
:fix/66-album-page-scrolls-as-one
:60-context-menu-action-sheet
:64-android-system-volume
:59-slim-the-mini-player
:55-queue-as-a-screen
:feat/57-drop-the-android-top-bar
:feat/62-jobs-as-a-notification
:fix/53-seek-bar-never-moves
:fix/159-android-task-app-id
:fix/52-android-activity-recreation-restarts-the-process
:fix/150-expand-button-under-the-art
:feat/42-inline-volume-and-centred-transport
:fix/156-queue-selection-fixture-order
:fix/151-fuse-the-scroll-guard-and-the-write
:fix/43-queue-panel-selection
:fix/143-top-bar-fits-its-window
:feat/27-jobs-into-settings
:feat/25-configurable-sidebar-tabs
:feat/6-global-back-forward
:fix/72-active-view-broadcast
:fix/69-page-header-action-overflow
:fix/quick-wins-batch
:fix/118-in-library-clear
:fix/61-mini-player-plain-text
:fix/68-hover-affordances-pointer
:fix/119-dev-headless-port
:fix/130-issue-claim-user
:fix/131-codegen-check-scope
:feat/28-autotag-match-on-album
:feat/17-demote-version-selector
:feat/38-ownership-visibility
:ci/115-manual-release
:feat/34-icon-language
:feat/7-full-tracklist-toggle
:fix/16-tagwriter-totals
:fix/unclaim-ca-certs
:fix/unclaim-shell
:ci/unclaim-on-close
:docs/closing-keyword
:docs/retire-stale-planning-docs
:docs/issue-driven-workflow
:integration/small-fixes
:fix/small-issue-batch
:fix/queue-toggle-state
:fix/drag-count-badge
:fix/album-card-year
:fix/album-tracklist-heading
:fix/seek-bar-clock-width
:fix/explore-art-scanner-requests
:chore/workflow-guardrails
No Reviewers
Labels
Clear labels
Area/Design
Area/Downloads
Area/Explore
Area/Library-UI
Area/Metadata
Area/Packaging
Area/Player
Area/Queue
Area/Settings
Area/Shell-Nav
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Platform/Android
Platform/Desktop
Breaking change that won't be backward compatible
Something is not working
Documentation changes
Improve existing functionality
New functionality
This is security issue
Issue or pull request related to testing
Priority
Critical
1
The priority is critical
Priority
High
2
The priority is high
Priority
Medium
3
The priority is medium
Priority
Low
4
The priority is low
Reviewed
Confirmed
1
Issue has been confirmed
Reviewed
Duplicate
2
This issue or pull request already exists
Reviewed
Invalid
3
Invalid issue
Reviewed
Won't Fix
3
This issue won't be fixed
Status
Blocked
1
Something is blocking this issue or pull request
Status
Need More Info
2
Feedback is required to reproduce issue or to continue work
Status
Abandoned
3
Somebody has started to work on this but abandoned work
Status
In Progress
Somebody is actively working on this right now
No labels
Milestone
No items
No Milestone
Projects
Clear projects
No projects
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: yonlu/yellowjacket#229
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
What the issue was
scripts/skill-check.shasserts that everymake <target>named in adoc exists. Its scanned set was
.pi/plusCLAUDE.md— soCONTRIBUTING.md, which #50 made the document a human contributorreads a build command out of, named 21 targets that nothing verified.
README.mdnames none today and is in the set for the same reason.#220 also names a smaller half: the lefthook
pre-commitglob was{Makefile,.pi/**/*.md}while the script already readCLAUDE.md, so acommit touching only
CLAUDE.mddid not fire the hook at all.What changed
ci(skill-check): scan the docs a contributor readsscripts/skill-check.sh—README.mdandCONTRIBUTING.mdjointhe scanned set. The file list is one
docsvariable used twice, onceto read the mentions out and once to say which file a missing target
came from, because the failure message carried its own copy and a
second list is a second thing to forget.
[ -d .pi ] || exit 0wentwith it: gating the whole run on
.pi/would make the human-facinghalf conditional on the agent-facing one, and
[ -n "$docs" ]is thesame "nothing to scan" exit without the coupling.
lscarries|| truebecause it exits non-zero when any argument is missingwhile still printing the others, and under
set -ethat sinks theassignment rather than scanning what is there.
lefthook.yml— the glob is the script's scanned set,AGENTS.mdincluded, since the script asserts that one is a symlink.
Makefile,CLAUDE.md— the two one-line descriptions of thetarget said
.pi// "the agent docs" and no longer do.Verification
A widened file list that catches nothing looks identical to one that
works, so every claim below was planted rather than read.
README.mdand inCONTRIBUTING.md, in both matched forms (backticked inline, andline-start inside a fence) — 4/4 fail, each naming the right file.
script:
skill-check: 47 documented make targets, all present,exit 0.
CLAUDE.mdand.pi/skills/…/SKILL.mdre-planted: both still caught, both still named correctly.
a renamed make no-such-prose-target is just English here.) still does not match,which is the rule that stops the check failing on reflow. #220 asked
for a bare non-target
makemention to be checked for while here:there is none in either file, which is what the clean run says.
CONTRIBUTING.mdstaged, thenlefthook run pre-commit --commands skill-check: fails under the newglob,
(skip) no matching staged filesunder the old one. Same for aCLAUDE.md-only stage. This PR's own commit fired it, on a stagedCLAUDE.md./tmp, script + Makefile only): onlyCONTRIBUTING.mdand no.pi/→ catches; no docs at all → exit 0;clean docs → passes.
make skill-checkon the branch: 47 documented make targets, allpresent — unchanged, because the set is a union and everything
CONTRIBUTING.mdnames was already named elsewhere. Coverage moved;the count could not.
Tiers not run, and why. No Go, no
.sql, no.templ, no boundsignature, no
frontend/:make lint,make test,make generate,make bindings,make ui-testandmake e2edo not apply and were notrun. Nothing renders differently, so no screenshot tier applies. CI's
checkjob runsmake skill-checkitself.Deliberately not done
Filed #228 rather than fixed here: a
`make … `span the filehard-wraps across two lines is matched by nothing, and
CONTRIBUTING.md:80already holds one (make dev-headless, wrapped).Nothing is broken today — that target is named on one line elsewhere —
but a target named only inside a wrapped span would be missed, and
these two files are the ones that invite the shape. Joining lines before
matching re-opens the failure the fence rule exists for, where a
sentence wrapped onto a line beginning with the word make and a single
letter, and the check failed on a target of that name. That needs a rule
for which joins are safe, which is a different change from widening a
file list. (It bit this PR's journal entry, which said so with
backticks on the first draft and failed the check.)
Closes #220
CI: green on run 18244 (re-run).
checksuccess,e2esuccess,commit
26251ba.The first attempt of that run failed
checkat the Test step, onTestYtDlpSearchSkipsUnparseableLines— which is #146, and unrelated tothis branch by construction: the diff contains no Go. The re-run passed
with nothing changed. That run did produce the message #146 asked for
and it is now on that issue:
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.