Repository navigation
fix: six script bugs (ste-check, status, learnings, file modes, HOME, concurrent merges) - #196
Merged
Merged
Conversation
…test Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Fixes
idstack-ste-checkfolder scan now includes.markdown. Test intest/test-ste-check.py, docs updated.completedtimeline event but a missing, 0 or non-int manifest score isNEEDS-WORK, and the verdict says "quality review has no score in the manifest" (same for accessibility). Same fail-closed pattern asred_known. 2 new tests intest/test-status.sh.ts.idstack-learnings logusessetdefault, the same asidstack-timeline-log. Header, docs and an integration test updated.idstack-manifest-mergeandidstack-report-sectionalready kept the file mode on main (copymode / umask). The remaining bug was the seed fromidstack-migrate --init(mode 0600). It now has0666 & ~umask. Tests: under umask 022 a new manifest and a merge leave 0644, and an existing 0640 file stays 0640.idstack-manifest-mergeandidstack-migrate --initwrite nothing and exit 9 when the course folder (the folder that holds.idstack/) is$HOME(symlinks resolved). Every skill gets it, with no model step to skip.fcntl.flockexclusive lock on.idstack/.manifest.lockfrom read to write; new--expect-updated <ts>(exit 8, nothing written); the report draft is now.idstack/.report-section.<skill>.mdintemplates/preamble.md(the only template change; skills regenerated; the zsh test passes<skill>=needs-analysis).Exit-code deviation from the task text
Exit 7 of
idstack-manifest-mergealready means "manifest from a newer idstack", so I could not use 7 for the HOME guard. HOME guard is 9 (merge and migrate),--expect-updatedis 8, as specified. Both are in the script header anddocs/cli-reference.md.#179 reproduction
Two background loops, 50 merges each, different sections (
quality_review,red_team_audit), 5 rounds, final value should be 50 and 50.updated, another merge writes, first merge writes back): reproduced by test; with--expect-updatedit exits 8 and the manifest is unchanged.Tests
Not verified / known limits
#171: I could not remove thedecision-neededlabel (gh issue editwas blocked in this session). Please rungh issue edit 171 --remove-label decision-needed.--expect-updatedhas a 1-second resolution (updatedis in seconds). No skill template passes it yet: this PR adds the option only, and I did not edit the templates beyond the scratch name.fcntl(macOS and Linux only). Thecanvas-push/scratch name in Two sessions in one course folder can lose manifest updates #179 is not changed (not in the task).Closes #173
Closes #172
Closes #171
Closes #190
Closes #178
Refs #179
#179: the lock and
--expect-updatedare here. The skill templates pass--expect-updatedin #197. Thecanvas-push/scratch folder, and two sessions that run the same skill in one folder, still share a name. I close #179 by hand after both PRs merge, with these limits on the issue.#178: the guard is on the manifest write path only.
idstack-timeline-log,idstack-learnings logandidstack-report-section initcan still create files under~/.idstack.🤖 Generated with Claude Code