src/autoskillit/skills_extended/compose-research-pr/SKILL.md
Reads a PR prep file and validated experiment diagrams, composes the PR body, and creates the GitHub PR. Part 3 of 3 in the decomposed research-PR flow.
npx skillsauth add talont-org/autoskillit compose-research-prInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Reads the PR prep file produced by prepare-research-pr, validates experiment design
diagrams, composes a structured PR body, and creates the GitHub PR using gh pr create.
Does NOT invoke lens skills or other sub-skills.
/autoskillit:compose-research-pr {prep_path} {all_diagram_paths} {worktree_path} {base_branch} [closing_issue]
prepare-research-pr.md files
(may be empty string if no lenses succeeded)feature_branch)NEVER:
gh is not accessible — emit pr_url = (empty string) and return{{AUTOSKILLIT_TEMP}}/compose-research-pr/ (relative to the current working directory)run_in_background: true is prohibited)ALWAYS:
gh auth status before attempting GitHub operationspr_url token as your final output (even if empty)A diagram passes validation if its content contains 2 or more of:
treatment, outcome, hypothesis, H0, H1, IV, DV, causal, confound,
mechanism, effect, comparison, baseline, threshold
Parse positional args:
Derive feature_branch:
FEATURE_BRANCH=$(git -C "{worktree_path}" rev-parse --abbrev-ref HEAD)
Create temp directory:
mkdir -p {{AUTOSKILLIT_TEMP}}/compose-research-pr/
Generate a timestamp ts for unique file naming.
Spawn an Explore subagent to read {prep_path} and extract:
report_path (from Metadata section)experiment_plan_path (from Metadata section)feature_branch (from Metadata section)base_branch (from Metadata section)experiment_typestatus_badgerecommendation (Recommendation section)results_summary (Results Summary section)methodology (Methodology section)# PR Prep: {title} heading)selected_lenses (Selected Lenses section)Split all_diagram_paths by comma; trim whitespace from each path.
For each path:
treatment, outcome, hypothesis,
H0, H1, IV, DV, causal, confound, mechanism, effect, comparison,
baseline, thresholdvalidated_diagramsIf all_diagram_paths is empty or all diagrams fail validation, set validated_diagrams = []
and continue (the Experiment Design section will be omitted).
Write to {{AUTOSKILLIT_TEMP}}/compose-research-pr/pr_body_{ts}.md:
## Recommendation
{recommendation}
## Experiment Design
{if validated_diagrams non-empty: include each mermaid block with a caption; omit this section otherwise}
| Hypothesis | |
|---|---|
| H0 | {H0} |
| H1 | {H1} |
| Metric | Unit | Threshold |
|--------|------|-----------|
{metrics rows}
## Key Results
{status_badge}
{results_summary}
## Methodology
{methodology}
## What We Learned
{from results_summary or prep file if a "What We Learned" section exists}
## Full Report & Artifacts
- Report: `{report_path relative to repo root}`
- Experiment plan: `{experiment_plan_path relative to repo root}`
{if closing_issue is set}
Closes #{closing_issue}
{/if}
🤖 Generated with [Claude Code](https://claude.com/claude-code) via AutoSkillit
Store the body file path as pr_body_path.
gh auth status 2>/dev/null
If not available or not authenticated: emit pr_url = (empty) then stop.
gh pr create \
--base "{base_branch}" \
--head "{feature_branch}" \
--title "Research: {title}" \
--body-file "{pr_body_path}"
Capture the PR URL from the output.
Emit these tokens as literal plain text (no markdown formatting on the token names) as your final output:
pr_url = https://github.com/owner/repo/pull/N
Where pr_url is the absolute GitHub PR URL, or an empty string when GitHub is not accessible:
pr_url =
development
Generate YAML recipes for .autoskillit/recipes/. Use when user says "make script skill", "generate script", "script a workflow", "write a script", "create a script", "new recipe", "write a pipeline", or when loaded by other skills for script formatting.
data-ai
Create Uncertainty Representation visualization planning spec showing error bar definitions, distribution-aware alternatives, and multi-seed variance protocols. Statistical lens answering "How is uncertainty honestly represented?"
data-ai
Create Temporal Dynamics visualization planning spec showing axis scaling (linear vs log), smoothing disclosure, epoch/step alignment, run aggregation (mean + variance bands), early-stopping markers, and wall-clock vs step-count x-axis. Temporal lens answering "Are training dynamics shown clearly and honestly?"
data-ai
Create Narrative Story Arc visualization planning spec showing visual consistency across the report (same color = same model everywhere), logical figure progression, redundant figure detection, and narrative dependency between figures. Narrative lens answering "Do the figures tell a coherent story across the report?"