Skip to content

feat(skills): xray-capture — capture, frontier fan-out, scouting suggest (27 K.1/K.2)#181

Closed
bryanmatthewsimonson wants to merge 1 commit into
claude/phase-27-f5-source-credibilityfrom
claude/phase-27-k1-capture-skill
Closed

feat(skills): xray-capture — capture, frontier fan-out, scouting suggest (27 K.1/K.2)#181
bryanmatthewsimonson wants to merge 1 commit into
claude/phase-27-f5-source-credibilityfrom
claude/phase-27-k1-capture-skill

Conversation

@bryanmatthewsimonson

Copy link
Copy Markdown
Owner

Summary

Phase-27 slices K.1/K.2 — the Claude capture skill. Stacked on #180 (the tip of the Phase-26/27 chain). Zero extension code changes.

A repo-level skill (.claude/skills/xray-capture/SKILL.md) a Claude session invokes to:

  1. Capture by URL — drive the loaded extension through the Chrome connector: navigate the article tab, send xray:capture into the content script from the portal tab (chrome.tabs.query exposes URLs from extension pages because the manifest carries <all_urls> host permissions — verified), and the reader auto-archives. PDFs take the ?pdf= tabless reader path. Verification is a read-only IDB check; paywalls are reported as uncapturable, never bypassed.
  2. Frontier fan-out — enumerate the seed's non-internal outbound links minus already-captured URLs, present the numbered list, and wait for the user to pick before sequential batch capture (links_truncated disclosed).
  3. Scouting suggest (K.2) — run the extension's own xray:llm:suggest (gates enforced worker-side; the request cannot override the user's stored suggestion kinds — verified against runSuggestionPass) and summarize what an article would yield. Acceptance stays in the reader; the cost of a reader re-run is stated plainly.

Constitution posture

Hard rules bind every step: no auto-accept ever, no publish paths, the API key never leaves the service worker, sequential pacing, and findings/baselines excluded from scouting until the F-ladder attribution fixes are proven on real articles (decision D8). K.3 (a headless apply-accepted-proposals seam) stays deferred until real usage shows the friction.

.gitignore: .claude/.claude/* + !.claude/skills/ so the skill ships while session state stays ignored.

Tests: 1,796 green (no src changes) · lint 0 errors.

🤖 Generated with Claude Code

…est (27 K.1/K.2)

Phase 27 slices K.1/K.2: a repo-level Claude skill that drives the
loaded extension through the claude-in-chrome connector. Zero
extension code changes — every step rides existing surfaces, verified
against the code:

- Capture by URL: navigate the article tab, then from the portal tab
  chrome.tabs.query + tabs.sendMessage({type: xray:capture}) into the
  content script; the reader auto-archives on open. PDFs take the
  reader ?pdf= tabless path. Verification is a read-only xray-archive
  IDB check with honest failure reporting (paywalls are reported as
  uncapturable, never bypassed).
- Frontier fan-out: the seed record's article.links (non-internal,
  minus already-captured), presented for the USER to pick before any
  batch capture; links_truncated disclosed.
- Scouting suggest (K.2): the extension's own xray:llm:suggest — the
  worker enforces flags/key/kinds server-side and the request cannot
  override the user's stored kinds; the skill summarizes counts +
  load-bearing claims in chat. Acceptance stays in the reader; the
  double-spend of a reader re-run is stated, not hidden.
- Hard rules in the skill text: no auto-accept ever (the constitution
  refusal of record), no publish paths, the API key stays in the SW,
  sequential pacing, findings/baselines out of scouting scope until
  the F-ladder fixes are proven (decision D8).
- .gitignore: .claude/ becomes .claude/* + !.claude/skills/ so the
  skill ships while session state stays ignored.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@bryanmatthewsimonson

Copy link
Copy Markdown
Owner Author

Landed on main via the #183 consolidation merge (the stacked-merge cascade closed/retargeted intermediates; every commit from this PR is in main).

@bryanmatthewsimonson
bryanmatthewsimonson deleted the claude/phase-27-k1-capture-skill branch July 18, 2026 05:19
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.

1 participant