Skills Reference¶
The six skills in the agentic-contributor plugin. Each skill is a domain-expertise module loaded by the /oss command after scenario classification.
Overview¶
| Skill | Trigger scenario | Purpose |
|---|---|---|
oss-scenario-routing |
Always (Step 2 of /oss) |
Classifies intent into one of the 9 scenarios |
issue-matching |
find | Contributor intake, heuristic scoring, ranked shortlist |
smart-questions |
clarify, claim, engage, review-reply | DRAFT-ONLY contract for outbound-text scenarios 5–8 |
contribution-norms |
norms | Surfaces CONTRIBUTING, CLA/DCO, PR conventions, governance |
dev-env-setup |
setup | Step-by-step guided local dev environment |
issue-drafting |
report | DRAFT-ONLY new issue (bug report or feature request) with pre-flight duplicate search and ISSUE_TEMPLATE application |
oss-scenario-routing¶
Trigger phrases: "find an issue to contribute", "check project status", "draft a question to maintainers", "understand contribution norms", "set up the project locally", "claim an issue", "give feedback on a PR", "respond to PR review", and close variants.
What it provides:
- Matches $ARGUMENTS against 9 scenario intent signals. The first strong match wins.
- If no strong match: presents the scenario menu and asks one clarifying question (maximum one question before classifying and proceeding).
- Specifies the skill and subagent to load/dispatch for the classified scenario.
- Handles the claim→engage branch: if oss-claim-analyst returns "appears already claimed", the skill directs a switch to the engage scenario.
- Enforces the DRAFT-ONLY rule for all 9 scenarios: report tier (1–4) saves to .oss-drafts/ and shows a "Saved to…" notice; draft tier (5–9) additionally presents the draft in chat with the canonical draft notice.
- Confirms that none of the 9 scenarios ever trigger write actions toward GitHub.
References: skills/oss-scenario-routing/SKILL.md
issue-matching¶
Trigger phrases: "find an issue to work on", "match me to a task", "suggest a good first issue", "what can I contribute", "find a PR I can help with", "show me newcomer-friendly issues", and close variants.
What it provides:
- Structured intake — asks up to 5 questions: goal/intent, background skills, newcomer status, item type preference (issues/PRs/both), and target projects.
- Data gathering — directs
oss-researcherto fetch open issues with relevant labels (good first issue,help wanted,bug,enhancement,docs) and stalled/review-requested PRs. - Exclusion filter — removes closed, merged, assigned, locked, or "wontfix" items.
- Heuristic scoring — ranks items by: newcomer-friendly labels (+3/+2), tech-stack overlap (+2), recent activity (+1), maintainer engagement (+1), clear unblock opportunity for PRs (+1), intent match (+2).
- Ranked shortlist — top 5–10 items, each with link, type, labels, last-updated date, and a 1–2 sentence rationale. The orchestrator saves the shortlist to
.oss-drafts/find-…and shows: "Saved to<path>. Review and edit this report file as needed before using it."
References: skills/issue-matching/SKILL.md
smart-questions¶
Trigger phrases: "draft a question to maintainers", "I want to ask about this issue", "draft PR feedback", "help me review this PR", "draft a review reply", "respond to maintainer feedback", "draft a claim comment", "I want to take this issue".
What it provides:
All output is a DRAFT. The contract:
1. Return the complete draft to the orchestrator, which saves it to .oss-drafts/<scenario>-<owner>-<repo>-<item>-<UTC>.md using the Write tool.
2. The orchestrator presents the draft in chat and adds the mandatory notice: "DRAFT — saved to <path>. Review and edit this file before sending. This plugin will NOT post, comment, push, or send anything. Sending is handled by the separate execution/submission plugin."
3. Never call any tool that posts, comments, pushes, or creates a GitHub resource.
Four scenario-specific procedures:
| Scenario | Procedure | Key behavior |
|---|---|---|
| A — clarify | Draft questions for maintainers | Summarizes what is already known; drafts specific, research-first questions with source citations |
| B — engage | Draft feedback on someone's PR | Scoped to the actual diff; identifies the most useful contribution based on PR state |
| C — review-reply | Draft replies to review comments on your PR | Acknowledges feedback, states action or rationale, stays concise, never fabricates changes |
| D — claim | Draft a claim comment | Only proceeds if oss-claim-analyst returns "free to take"; 3–5 sentences; follows project's preferred claiming mechanism |
References: skills/smart-questions/SKILL.md, skills/smart-questions/references/smart-questions-principles.md
contribution-norms¶
Trigger phrases: "how do I contribute to X", "what are the contribution norms", "do I need to sign a CLA", "what's the DCO", "where do decisions happen", "what's the governance model", "CONTRIBUTING guide", "how should I format my PR title", "what mailing list should I use".
What it provides:
- Governing documents — locates and fetches
CONTRIBUTING.md(or.rst),CODE_OF_CONDUCT.md,.github/PULL_REQUEST_TEMPLATE.md, any DCO file, and README contributing sections. - Legal prerequisites — ICLA / DCO requirements and what action is required before a first PR can be merged.
- Where decisions happen — GitHub Issues/PRs, Apache JIRA, dev@ mailing list, Confluence/Wiki, voting and lazy-consensus rules.
- Commit and PR title conventions — required title format (e.g.,
[SPARK-NNNN][COMPONENT]), commit message format, bot checks, required issue links. - Code of conduct — summary and link (ASF CoC for Apache projects).
- Apache-specific notes — ICLA, DCO sign-off, JIRA vs GitHub workflow, lazy consensus, and
[PROJECT-NNNN]-style title conventions fromreferences/apache-governance.md. - What's missing — explicitly states when a governing document cannot be found; never fabricates norms. The orchestrator saves the briefing to
.oss-drafts/norms-…and shows: "Saved to<path>. Review and edit this report file as needed before using it."
References: skills/contribution-norms/SKILL.md, skills/contribution-norms/references/apache-governance.md
dev-env-setup¶
Trigger phrases: "set up the project locally", "how do I clone and build X", "help me get the dev environment running", "how do I run the tests for X", "I can't get the build to work", "set up apache/airflow locally", "set up apache/spark locally", "what are the prerequisites for X".
What it provides:
- Official steps — extracts setup steps from
CONTRIBUTING.md,README.md, anddocs/in order. Never improvises steps not in the documentation. - Heavy-setup flags — warns before the user starts about known heavy setups: Airflow Breeze (Docker-based, several GB, 15–30 min), Spark JDK+Maven (JDK 8/11/17, 10–30 min full build).
- Environment-ready checkpoint — presents the specific verification command (e.g.,
pytest tests/unit/,./gradlew test) and what a passing result looks like. - Failure diagnosis — identifies which requirement or version constraint is not met; refers back to documented prerequisites; never suggests changes that could break other projects without explicit confirmation.
- Destructive-action confirmation — presents a yes/no confirmation step before any action that would upgrade a system package, change
$PATHpermanently, or remove existing virtual environments. - Scope boundary — explicitly states that writing code, committing, opening PRs, and pushing branches are out of scope and belong to the execution/submission plugin. The orchestrator saves the walkthrough to
.oss-drafts/setup-…and shows: "Saved to<path>. Review and edit this report file as needed before using it."
References: skills/dev-env-setup/SKILL.md
issue-drafting¶
Trigger phrases: "draft a bug report", "file a new issue", "report a bug in X", "draft a feature request", "propose a feature", "write up an issue for X", "open an issue about".
What it provides:
All output is a DRAFT. The contract:
1. Return the complete draft (suggested title, suggested labels, body) to the orchestrator, which saves it to .oss-drafts/report-<owner>-<repo>-<item>-<UTC>.md using the Write tool.
2. The orchestrator presents the draft in chat and adds the mandatory notice: "DRAFT — saved to <path>. Review and edit this file before sending. This plugin will NOT post, comment, push, or send anything. Sending is handled by the separate execution/submission plugin."
3. Never call any tool that posts, comments, pushes, or creates a GitHub resource.
Three-step Pre-flight (always before drafting):
| Step | Description |
|---|---|
| Duplicate search | oss-researcher searches open + closed issues with symptom keywords; surfaces top 3–5 candidates with links and similarity assessment; recommends commenting on strong duplicates instead of filing new |
| Template fetch | oss-researcher fetches .github/ISSUE_TEMPLATE/ directory + each template file + config.yml; warns on security-report redirects and Discussions redirects |
| Convention extraction | Identifies title format (component prefixes), label conventions (bug/enhancement), prompts user to pick component in monorepos rather than guessing |
Two drafting procedures:
| Procedure | Issue type | Evidence checklist |
|---|---|---|
| Procedure 2 — Bug Report | bug | Environment/version info, minimal reproducible example, exact steps to reproduce, expected vs. actual behavior, error logs/stack traces (fenced), file:line code references, related issue/PR links |
| Procedure 3 — Feature Request | feature | Problem statement/motivation, proposed solution, alternatives considered, scope/impact, file:line references to current behavior, related issues/discussions |
Four template-application cases:
- (a) Markdown template — fills sections in order, strips HTML comments.
- (b) YAML issue form — maps content to form fields by label/id; flags required: true fields.
- © Multiple templates — picks the type-appropriate template; tells the user which was chosen.
- (d) No template — uses built-in structure and notes this in the draft.
Missing evidence is always marked with TODO: placeholders; required fields are never fabricated.
References: skills/issue-drafting/SKILL.md, skills/smart-questions/references/smart-questions-principles.md
Back to docs index | Related: Agents | Commands | Scenarios | Draft Files