Skip to content

feat(plan): tighten compact task index contract (T2-T7) - #94

Merged
vipentti merged 4 commits into
mainfrom
fm/planlet-compact-task-index-implement
Aug 17, 2026
Merged

feat(plan): tighten compact task index contract (T2-T7)#94
vipentti merged 4 commits into
mainfrom
fm/planlet-compact-task-index-implement

Conversation

@vipentti

@vipentti vipentti commented Aug 17, 2026

Copy link
Copy Markdown
Owner

Summary

Implements compact-task-index-contract T2-T7 per plans/compact-task-index-contract/plan.md. Tightens planning guidance from permissive 60/100-word wording to 25/50-word targets and adds explicit pre-presentation compression pass. Names compression pass before proposal presentation in planlet-plan skill, deferring operational detail to guidance. Regenerates tracked installed skill copies and both .planlet-manifest.json files from freshly built dist/planlet.mjs. Adds structural contract assertions for compact template properties and new guidance controls. Adds [Unreleased] changelog entry for published-skill behavior change. Completes planlet via normal lifecycle flow. Revises task-boundary guidance so independently meaningful delivered outcomes are the sole split criterion, folded into existing split-rather-than-compress rule as one boundary rule.

Excluded scope preserved: no src/ parser/validator changes or task syntax, no assets/tasks-template.md rewrite, no planlet_design.md edit, no new standard named metadata field, no planlet-implement or planlet-complete skill changes, no existing-plan migration.

CLI behavior

  • Commands/options: none changed; uses existing node dist/planlet.mjs update and node dist/planlet.mjs --root . tools outputs plus node dist/planlet.mjs complete
  • Output or errors: none
  • Compatibility: guidance targets are planner judgment with no parser or validator enforcement; existing planlets remain valid

Implementation notes

  • Planning-guidance-only scope for task-boundary rules; SKILL.md unchanged for this rule per review request.
  • Revised from previous Prefer several focused tasks... split when parts can be implemented, reviewed, or verified separately to: independently meaningful delivered outcomes as sole criterion, a task may contain several testable/reviewable components when they serve one coherent outcome (requirements stay in plan.md), split only when every resulting checkbox is its own coherent outcome (splitting rather than compressing), separate implementability/verifiability is only evidence never sufficient, word-count pressure must not change semantic boundaries, anti-mechanical guard preserved — folded into single task-boundary rule rather than overlapping definitions.
  • Guidance ownership and existing optional Verify: behavior preserved per plan exclusions.
  • Installed copies regenerated in correct order: npm run build first (fresh checkout has no built CLI), then node dist/planlet.mjs update, then node dist/planlet.mjs --root . tools all 4 installed and both manifests in same changeset (this follow-up and prior follow-up).
  • Previous follow-ups: refactored tests/skills/skill-contract.test.ts to paragraph/step-scoped relationship proofs; this follow-up adjusts structural test to prove every resulting checkbox names its own coherent delivered outcome relationship without brittle exact-prose matching (single boundary paragraph: sole criterion, several requirements→one outcome+keep in plan.md, every checkbox→coherent outcome+splitting rather than compressing, only evidence/never sufficient, word-count pressure+semantic boundaries, anti-mechanical).

Verification

  • npm run format:check
  • npm run lint
  • npm run knip
  • npm run type-check
  • npm run build
  • npm test (250 pass, 0 fail)
  • git diff --check
  • node dist/planlet.mjs --root . validate compact-task-index-contract → valid, completed 6/6
  • node dist/planlet.mjs --root . status compact-task-index-contractcompleted
  • node dist/planlet.mjs --root . tools → all 4 destinations installed
  • node dist/planlet.mjs complete compact-task-index-contract2026-08-17-compact-task-index-contract, completedAt: 2026-08-17T08:57:01.957Z, mode normal, no override (retained)
  • git status --short no unexpected paths; plan remains completed
  • no src/ changes verified

Contributor checklist

  • Tests cover new or changed behavior, or no test change is needed.
  • User-facing documentation and CLI help are updated, or no update is needed.
  • CHANGELOG.md: [Unreleased] entry added for user-visible changes in the same change set, or explicit skip reason stated for internal-only work.
  • Every planlet task this PR completes is checked with planlet task check <slug> <task-id>, and a plan whose last task this PR completes is closed with planlet complete <slug>; or the PR completes no planlet task.
  • Canonical skill changes have been regenerated with node dist/planlet.mjs update --tools all, or no skill changed.
  • The change preserves supported Node.js and operating-system compatibility.

Related work

Tighten planning guidance from permissive 60/100-word wording to
25/50-word targets and add explicit pre-presentation compression pass.
Name the compression pass before proposal presentation in
planlet-plan skill, deferring detail to guidance. Regenerate tracked
installed skill copies and both manifests from built local CLI.
Add structural contract assertions for compact template properties
and new guidance controls without exact-prose matching. Add
[Unreleased] changelog entry for published-skill behavior change.
Verify via full repository suite, with every destination reporting
installed.

Plans: compact-task-index-contract T2 T3 T4 T5 T6 T7
Refactor skill-contract assertions to prove relationships in
paragraph/step-scoped blocks rather than corpus-wide keyword presence:
task-local metadata exceptional+bare outcome+Verify+when-useful guard in
one paragraph, compression step delegation to planning guidance in one
workflow step, and sparing nested-list plus both semantic exceptions in
one bounded paragraph. Reformat to satisfy project Prettier rules.
Complete compact-task-index-contract via normal lifecycle flow (no
override), including archive and completion record in same changeset.

Plans: compact-task-index-contract completed
Add paragraph-scoped rule that task boundaries follow meaningful
outcomes: prefer several focused tasks over one verbose task when work
contains independently implementable or verifiable outcomes, each task
is one coherent delivered outcome, split when parts can be separately
implemented/reviewed/verified, treat packing independent requirements
as signal to split, and do not split mechanically by file or tiny
edit. Strengthen skill-contract assertions to prove relationship in
one paragraph without brittle exact-prose matching. Regenerate tracked
installed skill copies and both manifests.

Refs: review-changes-2
…me criterion

Revise guidance so independently meaningful delivered outcomes are the
sole split criterion, folded into existing split-rather-than-compress
rule as one task-boundary rule. A task may contain several testable
components when they serve one coherent outcome with requirements in
plan.md. Every resulting checkbox must stand as its own coherent
outcome. Separate implementability or verifiability is only evidence,
never sufficient. Word-count pressure must not change semantic
boundaries. Anti-mechanical guard preserved. Adjust contract test to
prove every resulting checkbox names its own coherent outcome
relationship without brittle exact-prose matching. Regenerate tracked
skill copies and manifests.

Refs: review-changes-3
@vipentti-agent
vipentti-agent marked this pull request as ready for review August 17, 2026 09:14
@vipentti
vipentti merged commit 148d45f into main Aug 17, 2026
6 checks passed
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.

2 participants