skillup plan¶
Report what each segment's version should be, given the conventional commits that touched it. Changes nothing.
| Flag | Default | Meaning |
|---|---|---|
-p, --path |
. |
Repository root — the directory holding .claude-plugin/marketplace.json |
--output |
text |
text or json. Inherited from the root command; plan is the only command that honours it. |
Output¶
One line per segment that is not simply correct:
$ skillup plan --path .
alpha 0.4.0 -> 0.5.0 (minor, 3 commit(s))
bravo 0.22.0 ahead of its commits (they warrant 0.22.1) — left alone
charlie 1.2.0 2 commit(s) since 1.2.0, none releasing — ships to nobody
When every segment is correct it says so, in one line.
The states¶
| State | Reported? | Meaning |
|---|---|---|
| raise | yes | The manifest is behind. skillup apply will write the new version. |
| ahead | yes | The manifest is above what the commits warrant — someone set it deliberately. Left alone. |
| inert | yes | Commits touched the segment but none of them release, so it ships to nobody. Reported, not failed on. |
| satisfied | no | Releasing commits exist and the manifest is already at the version they warrant. |
| none | no | Nothing has touched the segment since its baseline commit. |
satisfied and none are both "nothing to do", but they are not the same
thing and the JSON keeps them apart: one segment has been bumped for its
changes, the other has had no changes.
JSON output¶
--output json emits the full plan for every segment, including the states
the text renderer stays quiet about. This is the interface to script against.
$ skillup plan --path . --output json
[
{
"segment": {
"Name": "phpboyscout-cicd",
"Dir": "plugins/phpboyscout-cicd"
},
"current": "0.8.0",
"baseline_commit": "c6a366ea2f58c63cb7c170a05fedb476b261990d",
"commits_considered": 0,
"bump": "none",
"next": "0.8.0",
"action": "none"
}
]
| Field | Meaning |
|---|---|
segment.Name |
The segment's name, from the catalogue entry |
segment.Dir |
Its directory, relative to --path |
current |
The version in plugin.json right now |
baseline_commit |
The commit where that version was last changed. Empty if the manifest has no history. |
commits_considered |
How many commits touched the segment since the baseline — all of them, not only the releasing ones |
bump |
major, minor, patch or none — the largest warranted by those commits |
next |
The version bump produces from the baseline |
action |
One of the states above |
reasons |
One line per releasing commit: short SHA, subject, bump. Omitted when empty. |
The two keys under segment are capitalised where every other key is
lower-snake. That is an inconsistency in the output rather than a convention —
match it as written.
Exit codes¶
Always 0, in every state — including raise. plan reports; check
is the one that fails.