Skip to content

feat(skills): add search-citation skill for web search guidance#219

Merged
Aaronontheweb merged 1 commit into
devfrom
claude-wt-search-skill
Mar 13, 2026
Merged

feat(skills): add search-citation skill for web search guidance#219
Aaronontheweb merged 1 commit into
devfrom
claude-wt-search-skill

Conversation

@Aaronontheweb

Copy link
Copy Markdown
Collaborator

Summary

  • Adds new search-citation system skill (v1.0.0) that guides the agent on when to use web_search vs. training data and requires source URLs for all specific factual claims
  • Includes progressive disclosure reference files for local search (restaurants/bars/services), travel (flights/hotels), and product search (shopping/hardware) verticals
  • Covers using context-provided user preferences (location, preferred airline, budget) to refine searches without re-asking
  • Handles edge cases: web grant not enabled, empty search results, unlinkable content (screenshot fallback via browser automation)
  • Bumps capability-reference to v1.1.0 with cross-reference to the new skill
  • Adds search-citation row to CLAUDE.md system skills sync table

Test plan

  • Verify ./feeds/scripts/generate-skill-manifest.sh runs clean and produces 7 skills
  • Verify manifest includes search-citation with 3 reference files in files[] array
  • Verify embedded copies in src/Netclaw.Daemon/BuiltInSkills/ match feed versions byte-for-byte
  • Verify SKILL.md frontmatter passes validation (name, description, metadata block)
  • Manual: confirm skill loads in agent context and triggers on search-related queries

…ource attribution

Adds a new system skill that guides the agent on when to use web search
vs. training data and requires source URLs for all specific factual claims.
Includes progressive disclosure reference files for local search, travel,
and product search verticals. Bumps capability-reference to v1.1.0 with
cross-reference to the new skill.
@Aaronontheweb Aaronontheweb enabled auto-merge (squash) March 13, 2026 21:01
@Aaronontheweb Aaronontheweb merged commit 062eece into dev Mar 13, 2026
2 of 3 checks passed
@Aaronontheweb Aaronontheweb deleted the claude-wt-search-skill branch March 13, 2026 21:01
@Aaronontheweb Aaronontheweb mentioned this pull request Mar 13, 2026
4 tasks
Aaronontheweb added a commit to Aaronontheweb/netclaw that referenced this pull request May 24, 2026
The outer Input panel's HeightAuto(max) constraint was captured once at
first navigation and never updated on terminal resize. Even though the
inner DynamicLayoutNode re-evaluated body width and expanded-body caps
on resize, the outer panel's frozen max prevented the layout from
actually growing when the terminal got taller.

Termina 0.10.0 adds ReactivePage.InvalidateLayout() which discards the
cached layout tree and rebuilds via BuildLayout() with fresh state. Now
the resize handler calls InvalidateLayout() so the panel cap follows
_terminal.Height changes — completing the dynamic scaling fix for netclaw-dev#1132.

Ref: Termina PR netclaw-dev#219 (ResizeEvent forwarding), PR netclaw-dev#220 (InvalidateLayout)
Aaronontheweb added a commit that referenced this pull request May 24, 2026
)

* fix(tui): keep approval controls visible for long prompts (#1132)

Long shell_execute approval bodies in `netclaw chat` wrapped over many
lines inside the Input panel and pushed the selection list and
`[Enter] Confirm` hint past the panel cap, leaving the user unable to
respond. Render a one-line summary plus a single-line truncated body
with a `[Ctrl+V to view full]` affordance by default; Ctrl+V expands
the body to a 5-row cap (with full text always available in the chat
history pane above) while keeping all selection options on-screen. The
wire-level `DisplayText` is untouched so non-TUI surfaces still see the
full prompt.

Adds headless ChatPageTests using Termina's VirtualTerminal and commits
ASCII frame snapshots under tests/Tui/__snapshots__/ as the visual
regression artifact for the issue.

* fix(tui): scale approval layout to terminal size

Address scaling issues flagged in code review of the initial #1132 fix.
Previously the body width (76 cols), expanded body cap (5 rows), Input
panel cap (14 rows), and status bar text were all hardcoded, producing
clipped affordances on narrow terminals, clipped tails for >5-line
bodies, and a layout that hit the cap exactly with the 5-option
production approval set.

- Inject IAnsiTerminal into ChatPage; read live width/height in the
  DynamicLayoutNode callback so body width, expanded body cap, and
  panel cap all scale with the actual terminal size.
- Expanded body cap derives from terminal height and live option count:
  panelMax = max(8, height/2); bodyMax = panelMax - (4 + optionCount).
- Status bar text now picks short/medium/full key-hint variants based
  on width and includes UiVersion in CombineLatest so resize re-emits.
- Subscribe to ResizeEvent in OnBound and bump UiVersion to trigger
  a layout re-evaluation on terminal resize.
- Restore the [PgUp/PgDn] Scroll hint to the pending-interaction key
  string (the design's stated escape hatch for >cap bodies).

Adds four new headless tests covering 60-col narrow terminal, the
5-option production set in expanded mode, a 16-row small terminal
(chat history must stay visible), and a terminal-resize round-trip.

* fix(tui): use InvalidateLayout on resize for dynamic panel cap

The outer Input panel's HeightAuto(max) constraint was captured once at
first navigation and never updated on terminal resize. Even though the
inner DynamicLayoutNode re-evaluated body width and expanded-body caps
on resize, the outer panel's frozen max prevented the layout from
actually growing when the terminal got taller.

Termina 0.10.0 adds ReactivePage.InvalidateLayout() which discards the
cached layout tree and rebuilds via BuildLayout() with fresh state. Now
the resize handler calls InvalidateLayout() so the panel cap follows
_terminal.Height changes — completing the dynamic scaling fix for #1132.

Ref: Termina PR #219 (ResizeEvent forwarding), PR #220 (InvalidateLayout)
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