feat(cli): Add route/existing/static/remote authoring recipes#25
Open
thecodedrift wants to merge 7 commits into
Open
feat(cli): Add route/existing/static/remote authoring recipes#25thecodedrift wants to merge 7 commits into
thecodedrift wants to merge 7 commits into
Conversation
Add the four routing recipes the skill fetches as the rule-authoring front door. `route` runs detect, requires the agent to write its rationale before naming a destination, commits local on reasonable confidence, asks when multiple paths fit, and treats try-verify-escalate as a failure fallback that prompts-and-confirms before spending a generation. `existing` authors in a detected linter's dialect (repo-first knowledge, web fallback, author-only). `static` authors a verified local ast-grep rule in the canonical on-disk shape, cleaning up an abandoned candidate on escalation. `remote` collects inputs and delegates to the rule create backend, letting the service decide static vs runtime. Recipes are auto-embedded via the existing import.meta.glob step and all four resolve through `taskless help <topic>`. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Adds four new embedded CLI help recipes (route, existing, static, remote) to serve as the “rule authoring front door” for Taskless, documenting the local-first routing and authoring flows and how to escalate to the service-backed generation path.
Changes:
- Added new help topics:
route,existing,static, andremoteunderpackages/cli/src/help/. - Documented routing rationale + confirmation-gated escalation behavior in
route. - Updated the openspec change checklist to mark the routing recipe tasks as completed.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| packages/cli/src/help/static.txt | New local ast-grep authoring recipe with verify loop and escalation guidance |
| packages/cli/src/help/route.txt | New routing recipe describing detect-driven rationale and destination selection |
| packages/cli/src/help/remote.txt | New service-backed generation recipe delegating to rule create |
| packages/cli/src/help/existing.txt | New recipe for authoring rules in an already-configured repo linter |
| openspec/changes/local-rule-routing/tasks.md | Marks the routing recipe tasks as completed |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Add a JSON example of `detect --json` output to the route recipe's scan step, so the agent sees the shape it consumes (linters, languages, frameworks, ruleStyles) — parity with how info/check recipes show their --json output. Addresses review feedback on the routing layer. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Tighten route.txt step 3 to match the cli-rule-routing spec: choosing `remote` requires a positive belief the request cannot be solved locally (cross-file/semantic), not mere lack of confidence. Genuine uncertainty routes to a clarifying question, never to a generation-spending remote. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* feat/local-rule-detect: docs(openspec): Clarify detect output schema is internal, not published docs(openspec): Address review feedback on local-rule-routing contract
PR #25 review: - remote.txt: stop advertising runtime rules / check.ts as current behavior, since runtime-rule support isn't shipped end-to-end yet. Reframe the recipe around gathering inputs and delegating to `rule create`; the service owns rule-type selection and today writes ast-grep rules under .taskless/rules/. - static.txt: instruct writing the matching `id` field in the test file (alongside valid/invalid), as rule create --anonymous and the CLI's test-file writer do and ast-grep test filtering expects. - route.txt: update the detect output example to the renamed `evidence` field (follows the detect rename on PR #24). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* feat/local-rule-detect: fix(cli): Harden detect against malformed manifests and false positives
* feat/local-rule-detect: ci(openspec): Skip the archive check on non-tip stacked PRs (#31) docs(openspec): Clarify detect output schema is internal, not published docs(openspec): Address review feedback on local-rule-routing contract docs(openspec): Propose local-rule-routing change chore(skill): Refine the stacked-PR archive-check guidance chore(skill): Scope iterate-pr archive check to the stack tip chore(config): Allow git-town in project settings
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.
Add the four routing recipes that the Taskless skill fetches as the rule-authoring front door. They are plain
.txtrecipes auto-embedded via the existingimport.meta.globstep and resolve throughtaskless help <topic>.routecarries the confidence-gated contract: rundetect, write the rationale before naming a destination, commit to a local path on reasonable confidence, ask the user when multiple paths fit (noting thatremotecosts a generation + login), and treat try-verify-escalate as a failure fallback that prompts-and-confirms before calling the service — never a silent fall-through.existingauthors a rule in a linter the repo already uses, in that tool's dialect, sourcing knowledge from the repo first and the web second. Author-only: the user's own toolchain runs it;taskless checkdoes not execute external linters.staticauthors a verified local ast-grep rule in the canonical on-disk shape (socheck/improve/verifytreat it identically to service output), and cleans up an abandoned candidate when escalating.remotecollects inputs, requires auth, and delegates to the existingrule createbackend — the service decides static vs runtime; the recipe never makes that call locally.routeonly decides local-vs-remote; static-vs-runtime stays with the service (owned upstream by the Runtime Rules project).Stacked on #24. Help-index registration + telemetry for these topics lands in the next PR.
Refs TSKL Runtime Rules
Stack generated by Git Town