Install
$ agentstack add skill-bostonaholic-team-team-research ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
Team Research — Answer the Questions
Run the RESEARCH phase only, then stop. The researcher and file-finder read questions.md (and optionally repos.md) — never the user's original task description.
Input
$ARGUMENTS is the artifact directory: docs/plans//. If empty, the discovery block below resolves it.
The dispatched agents receive $ARGUMENTS/questions.md and (when it exists) $ARGUMENTS/repos.md. They do not read task.md.
Resolve the artifact directory by running this self-contained block (one bash call — agent threads reset cwd between calls):
# Three-tier artifact-directory discovery (archetype A).
# ID_RE + PHASE_FILES canonical from hooks/session-start-recover.mjs.
# PHASE_FILES recency mirrors findActiveTopic() in session-start-recover.mjs.
# NOTE: this block is duplicated across 8 skills by design (see docs/architecture.md); future: shared discover-topic.sh.
ID_RE='^([A-Za-z][A-Za-z0-9_]*-[0-9]+|[0-9]{4}-[0-9]{2}-[0-9]{2})-[a-z0-9][a-z0-9-]*$'
PHASE_FILES="task questions research design structure plan"
PRED="questions.md" # predecessor artifact this skill consumes
# Tier 1 — explicit: $ARGUMENTS names an existing dir → use verbatim.
if [ -n "$ARGUMENTS" ] && [ -d "$ARGUMENTS" ]; then
echo "$ARGUMENTS"; exit 0
fi
# Tier 2 — discover: newest ID_RE dir under docs/plans/ that holds PRED.
best=""; best_mtime=-1
# Assumes cwd is the repo/worktree root (where docs/plans/ lives).
for dir in docs/plans/*/; do
name="$(basename "$dir")"
printf '%s' "$name" | grep -qE "$ID_RE" || continue # ID_RE filter
[ -f "$dir$PRED" ] || continue # predecessor filter
m=-1
for p in $PHASE_FILES; do
f="$dir$p.md"
[ -f "$f" ] || continue # skip racing/absent
s="$(stat -f %m "$f" 2>/dev/null || stat -c %Y "$f" 2>/dev/null)" || continue
[ "${s:-0}" -gt "$m" ] && m="$s" # max-mtime over PHASE_FILES
done
[ "$m" -gt "$best_mtime" ] && { best_mtime="$m"; best="$dir"; }
done
[ -n "$best" ] && { echo "$best"; exit 0; }
# Tier 3 — none found: print nothing → fall to AskUserQuestion (prose below).
- If the block printed a path, use it as
$ARGUMENTS(tier 1 explicit arg,
or tier 2 discovery). When the path came from tier 2 (no explicit arg), announce the resolved directory to the user before proceeding, so an auto-picked topic is never silent. Discovery resolves only the directory variable — the dispatch step below still forwards exactly {questions.md, repos.md?}.
- If the block printed nothing (tier 3 — no directory holds
questions.md),
do not hard-error. Fire AskUserQuestion with a Setup header and labeled options:
- Run the producer — run
/team-questionto produce the
missing questions.md.
- Provide a path — the user supplies the
docs/plans//directory
directly (run ls docs/plans/ to find your topic directory).
Execution
> Follow skills/progress-tracking/SKILL.md: when this procedure has two or more steps, seed one todo item per step before starting and mark each complete as you go.
- Use the directory resolved in
## Input. - Dispatch
file-finderandresearcherin parallel, passing each
the path $ARGUMENTS/questions.md. If $ARGUMENTS/repos.md exists, include its path too — repos.md carries scope (which repos and where) without leaking intent. Do not pass the original description, task.md, or any framing.
- Combine their returned content into a single
research.mdwritten to
$ARGUMENTS/research.md with the required frontmatter (see the researcher agent for the schema). The topic value MUST be read from $ARGUMENTS/questions.md's frontmatter and copied verbatim — never improvised, never combined with the ticket id. In multi-repo mode, preserve the repo-slug prefix on every file reference (e.g. frontend:src/App.tsx:42).
- Stop once
$ARGUMENTS/research.mdexists — do not continue to
DESIGN.
Scope isolation
- The orchestrator passes the agents only
questions.md(and optionally
repos.md for scope). Never task.md, never the description.
- Agent system prompts forbid reading
task.md. They are allowed to
read repos.md because it carries scope, not intent.
- If the agents need context the questions lack, they must surface it as
an open question rather than guessing intent.
If you suspect leakage (e.g., research references a goal not stated in questions.md), treat it as a defect and re-dispatch with a fresh agent.
Completion
Report:
- Path to
$ARGUMENTS/research.md - Key findings (3–5 bullets)
- Open questions count
- Tell the user: "Next: run
/team-design docs/plans//"
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: bostonaholic
- Source: bostonaholic/team
- License: MIT
- Homepage: https://team.bostonaholic.dev
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.