Repository navigation
Concise skills rollout: firecrawl (3 skills, 1 model-invoked) #6606
Copy link
Copy link
Closed as not planned
Closed as not planned
Copy link
Labels
host-runNeeds an unattended run on a host; the host runner takes it, not a person or the issue lane.Needs an unattended run on a host; the host runner takes it, not a person or the issue lane.priority: mediumReal value, no hard deadline; normal backlog flow.Real value, no hard deadline; normal backlog flow.status: confirmedA maintainer confirmed the item is real and in scope; ready to be worked.A maintainer confirmed the item is real and in scope; ready to be worked.work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.A briefed fix or small feature; blast radius bounded by the brief, tests exist.
Description
Part of #6476. Rewrite firecrawl's skills to the skill criteria in one draft PR, following the per-plugin runbook (/playbooks:skill-authoring, reference/rewrite-a-plugin.md). The runbook and the rewrite protocol it cites decide what ships; this issue holds only what is specific to the plugin.
The plugin today
As of origin/main on 2026-10-24:
- Skills:
firecrawl(model-invoked);setup,update(user-invoked). - Outcome eval case directories under the plugin: 0. Probe files under
probes/: 0.
Done when
-
/skill-quality:check plugins/firecrawlon the PR head reports no FAIL that the run on main does not. -
/evals:validatepasses onplugins/firecrawl's eval suite at the PR head. - Each model-invoked skill has a probe file:
plugins/firecrawl/probes/firecrawl.json. - The PR body holds a per-skill decision table, description and body decided separately, with the before and after numbers behind each row.
- The PR body names every skill or case left unmeasured, with the reason.
- The plugin's version or changelog entry is in the PR, per the plugin's release mode.
Eval spend and review
- Eval passes within prepaid API credit are pre-approved (owner decision Q46, 2026-10-24), at the
--max-cost-usd 5per-pass ceiling set on #6476 on 2026-10-18. - No person gates the PR: the owner's 2026-10-24 decision (C12) leaves only an intent mismatch during the build or a security issue at review as stops.
- Eval cases run without a Firecrawl API key; a case that needs a live third-party call is named unmeasured in the PR, never run against a paid outside service.
Generated by Claude Code
Metadata
Metadata
Assignees
Labels
host-runNeeds an unattended run on a host; the host runner takes it, not a person or the issue lane.Needs an unattended run on a host; the host runner takes it, not a person or the issue lane.priority: mediumReal value, no hard deadline; normal backlog flow.Real value, no hard deadline; normal backlog flow.status: confirmedA maintainer confirmed the item is real and in scope; ready to be worked.A maintainer confirmed the item is real and in scope; ready to be worked.work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.A briefed fix or small feature; blast radius bounded by the brief, tests exist.
Type
Fields
No fields configured for Task.
Activity
github-actions commentedon Oct 7, 2026
Proposed work class: work-class: scoped
Basis: automated intake triage; the lanes App applied this class.
Size: Medium
Complexity: Medium
Uncertainty: Known
Flags: none
Blocked by: none
Understood: rewrite the three firecrawl skills (firecrawl, setup, update) to the skill criteria in one draft PR, following the per-plugin runbook. Done-when covers the skill-quality check, eval validation, a probe file, a decision table, a list of unmeasured items, and a version or changelog entry. The scope is clear and the owner released the earlier hold, so nothing is missing. Eval spend is prepaid and pre-approved, so no cost flag applies. I found no likely duplicates among the open issues, apart from the parent #6476.
Automated triage, applied by the lanes App.
kyle-sexton commentedon Oct 19, 2026
This was generated by AI during triage.
Held: on #6476 (2026-10-18) the owner said the middle group of the concise-skills rollout is decided after batch 2's numbers; this plugin is not in batch 2.
kyle-sexton commentedon Oct 24, 2026
Released by the owner's HITL session (2026-10-24, C12): it waited only on a removed gate. Intake triage re-runs on it to set its fields, then admission takes it.
github-actions commentedon Oct 25, 2026
The triage sweep dispatched intake triage for this issue (attempt 1 of 2).
6 remaining items
kyle-sexton commentedon Oct 27, 2026
This was generated by AI.
Parked for capacity, not for the owner. This rollout's remaining work is the measured eval passes of the batch-1 protocol, which the issue lane cannot run: it cannot start
claudeorclaude plugin eval(see the lane's escalation on #6585, https://github.com/melodic-software/claude-code-plugins/actions/runs/40186335064). It waits on the plugin eval dispatch work in #9704, now a blocked-by edge, so admission holds it until #9704 closes.Under the owner's 2026-10-26 stop rule, a person is needed only for a change in intent or vision, an implementation finding that changes the intent or primary design, or a high or critical security issue; host, attended and eval runs are agent work. So
needs-humancomes off, and the issue moves tohost-runwithstatus: confirmed, which keeps the issue lane from taking it when #9704 closes: #9704 adds an eval dispatch workflow, not eval capability for the issue lane.kyle-sexton commentedon Nov 1, 2026
kyle-sexton commentedon Nov 1, 2026
This was generated by AI.
Progress: #11939 merged (ae7183b). It adds five outcome eval cases (all graders deterministic) and 18 frozen trigger probes for the
firecrawlplugin'sfirecrawlandsetupskills. It removes one host-dependent grader and tightens the command graders on review so a call inside a shell conditional or loop is still counted. No skill text changed. Its smoke pass was INVALID (one sandbox denial of a compound Bash command), so its scores are a signal, not a measurement.This issue stays open. The concise rewrite and its measured passes wait on the eval validity fixes in #11618 and #11628. Those runs must also unset
FIRECRAWL_API_KEYand put a failingazstub first onPATH(see the PR body). The frozen suite digest for those runs isbd2409ec691bf568043c0fb0af2d9bc58ef8a16f(plugins/firecrawl/evalsat e57bd17). The claim on this issue is released.kyle-sexton commentedon Nov 1, 2026
kyle-sexton commentedon Nov 1, 2026
Progress: the
firecrawlskill body shipped in #12102 (squash d5c37d3), measured no-loss: every case scored 1.000 before and after on Opus 5.5 and Sonnet 5.5, with all passes VALID.Still open on this issue:
setupbody: unmeasured, because its only case ran INVALID on both versions (permission denials in don't-ask mode on the env-presence probe). It needs a case shape or grant that lets that probe through.updateskill: it has no case that can run, since it needs network and a working-tree checkout.kyle-sexton commentedon Nov 2, 2026
kyle-sexton commentedon Nov 2, 2026
Host run (lane 2): measured pass for the
firecrawldescription, plus a negative control for the body cut merged in #12102. Nothing new ships;mainkeeps its text.Decision table
firecrawlfirecrawlmainkept (683 characters)setupmainkept, unmeasuredupdatemainkept, unmeasured#12102 body control (owner rule #12222)
main's firecrawl plugin (7cfcf0c59a). Broken copy: the same plugin with the contents of six procedure sections ofskills/firecrawl/SKILL.mdemptied (Core pattern, Commands, Configuration & defaults, Prerequisites, Updating, Gotchas). Frontmatter and every heading were kept: 173 to 93 lines.diff -rqlists only that file.claude-sonnet-5-5with an Opus judge, 5 runs, threshold 0.8,--scaffold --allow-tools WebFetch Bash Write Edit, the fourfc-*outcome cases. The two passes launched 5 s apart. Both VALID.fc-blocked-routes1.00 / 1.00;fc-init-refused1.00 / 0.67;fc-plain-page1.00 / 1.00;fc-spill-injection1.00 / 1.00.fc-init-refused. The deterministicno-initgrader failed in 5 of 5 broken runs, because the model ranfirecrawl init. Detects.Description pass
Actions:list, "the … binary" and "instead of streaming them into context": 683 to 503 characters.pos-train-011.00 to 0.33,pos-train-06,pos-val-02,pos-val-04) and in T2 (pos-011.00 to 0.00,pos-07)./docs-hygiene:compress comparelabelers.Actions:sentence was the only trigger text that namedmonitor,developer,doctor,search-feedbackandcredit-usage, and no probe exercises those actions.main's description stays.FIRECRAWL_API_KEYremoved and a failingazstub first onPATH. A scan of every kept trace, result file and the branch found 0 key-shaped strings.Findings
main's description already false-triggers on 64% of VALID should-not-fire probe runs (71% on the frozen set). The rewrite is identical there.monitor,developer,doctor,search-feedback,credit-usage). A cut that drops their trigger words passes the trigger measure. Only the meaning diff caught it.emit-plugin-evalloads competitor plugins (plugins/skill-quality/probes/template.md, "Competitors by purpose"). They are left as they are.This issue stays open for the
setupcase shape and theupdatecase. The lane-2 claim is released.This was generated by AI.
kyle-sexton commentedon Nov 2, 2026
Closed under the owner's Q2 decision, which stops the concise-rewrite series: #6476 (comment). Lane 2's measured description pass shipped nothing new (result above); main keeps its text.