Skip to content

feat(pm): add validated close-milestone primitive#415

Merged
aleskalfas merged 2 commits into
mainfrom
feat/229-add-a-validated-close-milestone
Jul 1, 2026
Merged

feat(pm): add validated close-milestone primitive#415
aleskalfas merged 2 commits into
mainfrom
feat/229-add-a-validated-close-milestone

Conversation

@aleskalfas

Copy link
Copy Markdown
Owner

What

Add pkit project-management close-milestone <n> — a validated milestone-close primitive mirroring create-milestone / close-issue. Closes a GitHub milestone through the validated path (holding the grant the raw gh api path lacks), reads the close-trigger from time-containers.yaml (content-based refuses on open children unless --force; date-based warns + lists), supports --dry-run, and records an audit note in the milestone description (milestones have no comment thread). New executable entrypoint; wired in package.yaml; documented in the capability README.

Scope / deferrals (see #229 acceptance criteria)

Doc impact

Adds a "Milestone lifecycle — create-milestone / close-milestone" subsection to the capability README (close-trigger behaviour, membership resolution, audit-note substrate, the deferrals).

Surface / version

New CLI command = surface change (PRJ-002): .pkit/VERSION 1.131.1 -> 1.132.0 (minor), project-management component.version 0.42.0 -> 0.43.0 (minor).

Verification

Closes #229.

aleskalfas and others added 2 commits July 1, 2026 11:18
Add pkit project-management close-milestone <n>, mirroring create-milestone and
close-issue: closes a GitHub milestone through the validated path (holding the
grant the raw gh api path lacks), reads the close-trigger from time-containers
(content-based refuses on open children unless --force; date-based warns + lists),
supports --dry-run, and records an audit note in the milestone description
(milestones have no comment thread). Bumps the capability to 0.43.0. Closes #229.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ne verb

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@aleskalfas

Copy link
Copy Markdown
Owner Author

Reviewer agent (local, reviewer): APPROVED

Applied the pm-conventions checklist to PR #415 against issue #229. All gate-blocking criteria pass; the verdict follows mechanically from the severity model in validation-severity.yaml.

Findings

  • Branch shape — pass ([project-management:DEC-013-branch-and-pr-conventions], git-conventions.yaml branch-name). feat/229-add-a-validated-close-milestone matches ^(feat|fix|...)/[0-9]+-[a-z0-9-]+$.
  • Branch-type / issue-type alignment — pass (pr_type_mapping). Issue [Task] Add a validated close-milestone primitive #229 carries type:feature; the mapping resolves feature → feat, and the branch's <type> is feat.
  • PR title Conventional Commits — pass ([COR-008] + DEC-013). feat(pm): add validated close-milestone primitive parses as <type>(<scope>): <desc> with an accepted type.
  • PR title type matches issue type — pass. feature → feat per pr_type_mapping; title type is feat.
  • Issue classification complete — pass ([project-management:DEC-012-classification-axes]). [Task] Add a validated close-milestone primitive #229 carries type:feature, priority:Medium, workstream:capabilities (plus state:in-progress).
  • PR body links to closing issue — pass (DEC-013, git-conventions.yaml pr-body). Closes #229 present and closingIssuesReferences populated. ## Doc impact section present (the hard-reject pr-body rule is satisfied).
  • Surface-change discipline — pass ([COR-010]). New executable close-milestone.py plus command wiring is a pure addition; package.yaml schema_version: 2 is unchanged (only component.version 0.42.0→0.43.0), no renames/removals in kit-owned trees. Author reports pkit migrations check-diff: no triggers — consistent with the diff.
  • No-shared-files invariant — pass ([COR-001]). All edits sit in the project-management capability tree, .pkit/VERSION, .pkit/adapters/claude-code/package.yaml, and tests/. This is project-kit's own source repo (self-hosting), which owns these trees, so the invariant is not implicated.

Warnings / notes (non-blocking)

Scope reminder: this verdict covers pm conventions only — code correctness, the close-trigger policy logic, and test adequacy are software-engineer / qa-engineer scope, not mine.

@aleskalfas aleskalfas merged commit 8f055c9 into main Jul 1, 2026
1 check passed
@aleskalfas aleskalfas deleted the feat/229-add-a-validated-close-milestone branch July 1, 2026 09:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Task] Add a validated close-milestone primitive

1 participant