feat(plan): tighten compact task index contract (T2-T7) - #94
Merged
Conversation
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
marked this pull request as ready for review
August 17, 2026 09:14
vipentti-agent
approved these changes
Aug 17, 2026
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.
Summary
Implements
compact-task-index-contractT2-T7 perplans/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 inplanlet-planskill, deferring operational detail to guidance. Regenerates tracked installed skill copies and both.planlet-manifest.jsonfiles from freshly builtdist/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, noassets/tasks-template.mdrewrite, noplanlet_design.mdedit, no new standard named metadata field, noplanlet-implementorplanlet-completeskill changes, no existing-plan migration.CLI behavior
node dist/planlet.mjs updateandnode dist/planlet.mjs --root . toolsoutputs plusnode dist/planlet.mjs completeImplementation notes
Prefer several focused tasks... split when parts can be implemented, reviewed, or verified separatelyto: independently meaningful delivered outcomes as sole criterion, a task may contain several testable/reviewable components when they serve one coherent outcome (requirements stay inplan.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.Verify:behavior preserved per plan exclusions.npm run buildfirst (fresh checkout has no built CLI), thennode dist/planlet.mjs update, thennode dist/planlet.mjs --root . toolsall 4 installed and both manifests in same changeset (this follow-up and prior follow-up).tests/skills/skill-contract.test.tsto 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:checknpm run lintnpm run knipnpm run type-checknpm run buildnpm test(250 pass, 0 fail)git diff --checknode dist/planlet.mjs --root . validate compact-task-index-contract→ valid,completed6/6node dist/planlet.mjs --root . status compact-task-index-contract→completednode dist/planlet.mjs --root . tools→ all 4 destinationsinstallednode dist/planlet.mjs complete compact-task-index-contract→2026-08-17-compact-task-index-contract,completedAt: 2026-08-17T08:57:01.957Z, mode normal, no override (retained)git status --shortno unexpected paths; plan remainscompletedsrc/changes verifiedContributor checklist
planlet task check <slug> <task-id>, and a plan whose last task this PR completes is closed withplanlet complete <slug>; or the PR completes no planlet task.node dist/planlet.mjs update --tools all, or no skill changed.Related work
plans/compact-task-index-contract/(PR docs(plan): compact tasks.md execution index contract #93 follow-up), nowplans/completed/2026-08-17-compact-task-index-contract/