fix: address meta-feedback issues from scaffold test runs#27
Merged
KyleAMathews merged 19 commits intomainfrom Mar 4, 2026
Merged
fix: address meta-feedback issues from scaffold test runs#27KyleAMathews merged 19 commits intomainfrom
KyleAMathews merged 19 commits intomainfrom
Conversation
The scaffold prompt now instructs the AI to load each meta skill's SKILL.md one at a time with explicit review stops between steps, rather than summarizing all three phases in a single prompt dump. This prevents quality degradation from the AI racing ahead. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds packaging warnings when package.json exists: checks for @tanstack/intent in devDependencies, bin entry, shim file, and "skills"/"bin"/"!skills/_artifacts" in files array. Also validates SKILL.md description doesn't exceed 1024 characters. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Both maintainer and consumer list commands now display the file path for each skill, making the output actionable for AI coding agents that need to load the skill file. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The agent should read package.json and detect monorepo structure itself rather than asking the maintainer for information that's trivially discoverable. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
When gh issue submission fails, the error message is now logged instead of silently falling through. Also adds Markdown file support: .md files are submitted directly as issue bodies without requiring JSON format. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The generated bin/intent shim now uses .mjs extension to avoid Node.js ESM warnings in packages without "type": "module". When the package does declare "type": "module", it uses .js instead. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Domain discovery now identifies cross-skill "See also" pointers beyond tensions and shared failure modes. The tree generator consumes these to add cross-reference lines in generated skills, forming a semi-lattice of connected knowledge. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds --labels flag to intent setup that creates meta-feedback labels (feedback:domain-discovery, feedback:tree-generator, etc.) on the target GitHub repo using gh CLI. Prevents silent failures when the feedback command tries to add labels that don't exist. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
commit: |
Labels are derived from the library's own skills/ directory (e.g. feedback:typography-core, feedback:react-typography), not hardcoded meta-skill labels. Added as a scaffold post-generation step. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The feedback-collection skill now instructs agents to use gh issue create directly (or tell the user how to submit manually) instead of routing through the intent feedback CLI. Simpler, fewer failure modes, better formatting. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The maintainer CLI's install command now prints the same guided prompt as the library CLI — the agent scans the project and sets up skill-to-task mappings in agent config files, rather than programmatically injecting blocks. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The feedback-collection SKILL.md now instructs agents to use `gh issue create` directly rather than routing through a CLI command. Removed the `feedback` case from the CLI switch and the `runFeedback` function from feedback.ts. Library utility functions (validate, toMarkdown, submit) remain as public API. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Use execFileSync instead of execSync to prevent shell injection - Fix stale phase cross-references in domain-discovery and tree-generator - Remove createSkillLabels and --labels flag (agents create labels directly) - Remove init.ts — replaced by prompt-based install command - Extract shared display helpers into display.ts - Extract collectPackagingWarnings, detectShimExtension, findExistingShim - Surface package.json parse errors in validator warnings - Update README to reflect current CLI surface Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
padColumn and printSkillLine are only used within display.ts — they don't need to be exported. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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
Addresses all meta-feedback issues from the Durable Streams test run. The core problem: the scaffold dumped all three meta skills into a single prompt, causing quality degradation. This PR restructures the scaffold to run skills sequentially, removes CLI code that agents should handle directly, and fixes cross-reference gaps in the domain map.
Net result: -808 lines, +506 lines — the CLI surface is smaller, agents do more, maintainers do less.
Approach
Sequential scaffold with STOP gates. The scaffold now loads each SKILL.md one at a time with explicit stop-and-review points. The agent gathers context (library name, repo URL, monorepo structure) autonomously from
package.jsoninstead of asking the maintainer.Agents handle feedback and labels directly. The
feedbackCLI command andrunFeedbackfunction were removed — the feedback-collection SKILL.md now instructs agents to usegh issue createdirectly. Similarly,createSkillLabelswas removed fromsetup.ts— the scaffold tells the agent to createfeedback:<skill-name>labels viagh.init→install, prompt-based. The oldinitcommand programmatically injected blocks into agent configs. The newinstallcommand prints a guided prompt (matching the library CLI) that lets the agent scan the project and set up skill-to-task mappings.init.tsand its tests were removed entirely.Cross-references in the domain map. Domain discovery now maps "See also" pointers between skills (Phase 3f). The tree generator consumes these to add cross-reference lines to generated skills.
Key changes
ghdirectly;execFileSyncreplacesexecSyncfor shell safety.mjsby default,.jswhen package has"type": "module"display.ts(was duplicated between CLIs)Non-goals
detectVars,resolveFrequency,parseFrontmatter,fetchNpmVersion— those are out of scope for this feedback-driven PR.Verification
Manual verification:
npx @tanstack/intent scaffoldprints sequential instructions with STOP gatesnpx @tanstack/intent validatereports packaging warningsnpx @tanstack/intent setup --shimgenerates.mjsshimnpx @tanstack/intent installprints agent prompt for skill-to-task mappingsFiles changed
src/cli.tsinstallcommand,feedbackcase removedsrc/display.tssrc/setup.ts.mjsshim default, removedcreateSkillLabelsand--labelsflagsrc/feedback.tsrunFeedback, switched toexecFileSyncsrc/intent-library.tsdisplay.ts, shows skill pathssrc/index.tssrc/init.tsinstalltests/init.test.tsmeta/domain-discovery/SKILL.mdmeta/tree-generator/SKILL.mdmeta/feedback-collection/SKILL.mdgh issue createdirectlyREADME.mdCloses #24
Closes #25
Closes #26
🤖 Generated with Claude Code