Repository navigation
pm project edit renames a project; pm check names title drift (pm-quality sprint 47) - #122
Merged
Merged
Conversation
internal/cli sits at its size ratchet (7301 lines), and pm project edit and the pm check title-drift report need room. The day's activity text (what pm day summarize gives the model and hashes into its digest) reads only the records and the items, never the command's repo, so it moves whole to internal/cli/dayactivity with its test. pm-d2k5.47.1. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A project's title had no rename path: a hand edit of the record's title: header left the work store's title stale, and nothing showed the drift. pm project edit --title renames a project, open or closed, as pm sprint edit does a sprint: the work-store title first, then one records commit that sets the header and records the rename, with its reason, as a project decision (source=owner with --confirmed); a failed records step puts the old title back. Only a title both layers hold already is refused, so the hand-edited drift is fixed by the same command. pm check now names each project whose header the work store does not hold, with that fix. It is a report like the uncovered-files list, not a failure: pm commit runs site.Check alone, so the drift blocks no commit. The internal/cli size ratchet drops to the package's new size. pm-d2k5.47.1. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The hint printed `fix: pm project edit … --title "…"`, which is not runnable (the command needs a reason body) and loses $ and backticks in double quotes. It now says the command takes the reason as its body and single-quotes the title for the shell. The drift list also sat in front of the design report with no separator, so the report's "; a design page covers every tracked source file" ran onto the last fix line; it now comes last, on a line of its own. Adds a test for a rename where the work store holds the new title already: only the header is written, and the decision names the header's old title. pm-d2k5.47.1. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
….16.0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Yeeef
force-pushed
the
project-edit-title
branch
from
October 25, 2026 15:06
df744d3 to
96897bf
Compare
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
pm project edit <name> --title "…", with the reason as its body (two lines or more). It works likepm sprint edit:title:header and adds a project decision. The source is agent, or owner with--confirmed.pm checklists each project whose recordtitle:differs from its work-store title, with thepm project editthat fixes it. This is a report, not a failure, sopm commitnever refuses on it.internal/cli/dayactivity. This keepsinternal/cliunder its size cap.Why
The poker repo renamed three projects by editing their record headers. The work-store titles stayed stale in
pm show, in sprintparent:lines and in the day summary, and nothing reported it.Evidence
make test: 159 passed.tests/test_pm.py: 59 passed. This includes 3 new tests: the rename and its refusals and rollback, drift reported then fixed, and a store-only no-write case.internal/cliandinternal/recordsGo tests pass.make lint: 0 issues.🤖 Generated with Claude Code