Review software architecture, including package cohesion and inter-package coupling
日本語の概要は準備中です。原文の説明を表示しています。
Research a topic in depth for the current or given task plan, by combining Internet/Web search with a grounding in the source artifacts of the project, and append the resulting research report to the "research" attachment of the task, optionally refining the plan by its recommendations. Use when the user wants to "research", "investigate", or "look into" a topic for a "task" or "plan".
インストールする前に、エージェントに与えられる指示の中身を確認できます。
@${CLAUDE_SKILL_DIR}/../../meta/ase-control.md @${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md @${CLAUDE_SKILL_DIR}/../../meta/ase-getopt.md
<purpose name="ase-task-research"> Research a Topic for a Task Plan </purpose><expand name="getopt" arg1="ase-task-research" arg2="--services|-s=(all|perplexity|brave|exa|websearch)... --refine|-r --dry-run|-d --int-source-dir="> $ARGUMENTS </expand>
<objective> *Research* a topic in depth for a task plan, grounded in both the *Internet*/*Web* and the *source artifacts* of the project. </objective>@${CLAUDE_SKILL_DIR}/../../meta/ase-format-task.md @${CLAUDE_SKILL_DIR}/../../meta/ase-format-meta.md
Determine Task and Topic:
Set <topic><getopt-arguments/></topic> initially, with any leading and trailing whitespace stripped. Inherit the always existing <ase-task-id/>, <ase-session-id/>, and <ase-project-boxing/> from the current context. Do not output anything.
React on task and/or topic:
If <topic/> matches the regexp ^[a-zA-Z0-9#][a-zA-Z0-9#_-]*$,
or has the format <id/>: or <id/>: <text/> where <id/>
matches this regexp: set <ase-task-id><id/></ase-task-id> (or
to <topic/> itself for the first form) and <topic/> to <text/>
(or to empty for the first two forms), call the
ase_task_id(id: "<ase-task-id/>", session: "<ase-session-id/>")
tool of the ase MCP server to switch the task, and then only
output the following <template/>:
Otherwise, only output the following <template/>:
<template> ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ▶ status: **task inherited** </template>Treat <getopt-option-services/> as a comma-separated list of
backend tokens. The getopt parser validates only the first
token, so you MUST validate each remaining token yourself
against the allowed set all, perplexity, brave, exa,
websearch. If any token is not in this set, bind <token/> to
that offending token, then only output the following <template/>
and then immediately STOP processing the entire current skill:
A backend is selected if all is in <getopt-option-services/>
OR that backend's own name is in <getopt-option-services/>.
Load: call the ase_task_load(id: "<ase-task-id/>", tag: true)
tool of the ase MCP server -- with the variant argument
defaulting to source and the attachments argument defaulting
to elided -- and set <plan/> to its text output field without
the trailing <task-plan-tag> delimiter line, and <tag/> to the
content of that line. If <plan/> is empty or starts with ERROR:
or WARNING:, only output the following <template/> and then
immediately STOP processing the entire current skill:
Research the Web:
Derive two to four focused, complementary search queries <queries/> from <topic/> -- like its established practices and standards, its typical solutions, libraries, or patterns, and its known pitfalls. Each query is a self-contained summary of an aspect of <topic/> and MUST NEVER carry confidential project internals: no file paths, no symbols or identifiers, and no other names taken from the project or from <plan/>, as the queries leave the project towards foreign search services. Do not output anything.
Invoke the following tool once per query <query/> of <queries/> and per selected backend, emitting all invocations in one single message so they run in parallel:
If the perplexity backend is selected and the MCP tool
perplexity_search from the MCP server search-perplexity is
available:
If the brave backend is selected and the MCP tool
brave_web_search from the MCP server search-brave is
available:
If the exa backend is selected and the MCP tool
web_search_exa from the MCP server search-exa is available:
If the websearch backend is selected and the tool WebSearch
(or, if it is not available, the tool web_search) is available:
If none of the selected backends could be invoked -- because no corresponding tool is available -- only output the following <template/> and then immediately STOP processing the entire current skill:
<template> ⧉ **ASE**: ✪ skill: **ase-task-research**, ▶ ERROR: no search backend available: **<getopt-option-services/>** </template>Consolidate all responses into the Web facts <web-facts/>: merge overlapping information, drop irrelevant and unsourced information, and keep every remaining fact together with its source URL. Do not output anything.
Ground in the Project:
Resolve the artifact kinds spec, code, docs, and infr to
their project-relative file lists:
From these file lists, determine the files (or their parts) which are relevant for <topic/> and <plan/> -- the specification parts, source code modules, interfaces, and symbols, the documentation, and the build, test, and deployment configuration the topic touches or depends on -- and read them, strictly read-only (never change, stage, or commit anything). Condense their relevant project facts -- the current state, existing decisions, conventions, constraints, and terminology -- each with its project-relative file path, into <project-facts/>. Do not output anything.
Synthesize the Research Report:
Call the ase_timestamp(format: "yyyy-LL-dd HH:mm") tool of the
ase MCP server and set <timestamp/> to the text field of its
response. Then set <section/> to the research section of this run
with the following <format/>, bounded to about 300 lines and at
most 10 findings (the most relevant ones), where every line of
every part is broken after about 100 characters, and where a part
without any content states (none):
Researched: <timestamp/>
<project-file/>: <project-fact/>
[...]Here the Findings are the most relevant Web facts of <web-facts/>,
each with its source URL, the Project Grounding are the most
relevant project facts of <project-facts/>, each with its
project-relative file path, the Assessment states in 3-8 sentences
how the findings apply to the project, including the gaps (what
the project lacks) and the conflicts (where the project or <plan/>
deviates from the findings), and the Recommendations are the
concrete, actionable consequences for <plan/>. You MUST NOT
invent any finding, source URL, or project fact which is not backed
by <web-facts/> resp. <project-facts/>. The section MUST NOT
contain a line consisting of just ---. Do not output anything.
Attach the Research Report:
Persist: update <plan/> as follows and save it, where a refused save restarts this sub-step:
If the backmatter of <plan/> contains an attachment block
with the Type key value text/markdown; charset=utf-8; kind="research", it carries the sections of earlier
research runs: fetch its payload via the
ase_task_attachment(id: "<ase-task-id/>", type: "text/markdown; charset=utf-8; kind=\"research\"") tool of
the ase MCP server, whose text output field is the
payload verbatim, and set <payload/> to it, followed by an
empty line and <section/>, so the sections accumulate in
chronological order. Otherwise, set <payload/> to <section/>
and append a new attachment block to the backmatter of
<plan/>.
Set the keys of this attachment block according to the plan
<format/>: Type to text/markdown; charset=utf-8; kind="research", Desc to <topic/> (truncated to at most 60
characters, ending in … if truncated), Created to its
already present value (or to <timestamp/> for a new block),
Modified to <timestamp/>, and Data to <payload/> as a
|4+ literal block scalar, with every line -- including
empty lines -- indented by exactly 4 spaces.
Change nothing else of <plan/>: especially, do not change
the Status: key, pass the Effort: key through verbatim
(the task store drops it on its own if the body changed), and
pass all other attachment blocks through verbatim (with
their elided Data markers).
Call the ase_task_save(id: "<ase-task-id/>", text: "<plan/>", base: "<tag/>") tool of the ase MCP server, so the save is
refused if the plan was changed meanwhile by anybody else.
This ase_task_save MCP tool call is the only permitted way
to persist the plan -- NEVER write the plan file via
Write/Edit or by executing a shell command.
On success, set <status>research attached</status>, or <status>research attached, plan refined</status> if the body was changed by sub-step 3 above.
If the save is refused because the plan was changed meanwhile, reload <plan/> and <tag/> as in step 1.4 and restart this sub-step 2 (keeping <section/>), at most three times in total, and afterwards set <status>failed: plan changed concurrently</status>.
On any other error <info/>, set <status>failed: <info/></status>.
Report:
Finally, give the closing hint by expanding the following (which, depending on the configured <ase-guidance-level/>, may expand into nothing and hence emit no output at all), and then STOP processing the entire current skill:
<if condition="<getopt-option-dry-run/> is `true`"> <ase-tpl-hint level="normal"> Run `/ase-task-research` again without `--dry-run` to append the research report to the `research` attachment of the task. </ase-tpl-hint> </if> <elseif condition="<getopt-option-refine/> is not `true` and <status/> starts with `research attached`"> <ase-tpl-hint level="verbose"> Use `/ase-task-research --refine` to additionally refine the plan by the recommendations, or `/ase-task-view --full` to view the research attachment. </ase-tpl-hint> </elseif>まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Review software architecture, including package cohesion and inter-package coupling
日本語の概要は準備中です。原文の説明を表示しています。
Discover additional, third-party components (libraries/frameworks) for the technology stack to provide needed functionality.
日本語の概要は準備中です。原文の説明を表示しています。
Analyze the source code for problems in either the logic and semantics and its related control flow, performance and efficiency, or security.
日本語の概要は準備中です。原文の説明を表示しています。
Edit Source Code: Use when the user wants to "edit" the code base in one shot from a query or a bare analyzer issue id like "P1", fusing crafting, refactoring, and resolving with optional grilling, verification, looping, and Git worktree isolation.
日本語の概要は準備中です。原文の説明を表示しています。
Explains code with WHAT, WHY, ANALOGY, DIAGRAM, CRUXES, and GOTCHAS. Use when you want to know how code works or when the user asks "how does this work?"
日本語の概要は準備中です。原文の説明を表示しています。
Give insights into the source code.
日本語の概要は準備中です。原文の説明を表示しています。