Agent Skillsnasa/fprime › maintainer-lookup

maintainer-lookup

GitHub

用于在代码审查中定位需通知的维护者。通过解析README、安全负责人配置、近期提交审批记录及回退机制,动态获取GitHub用户句柄,以处理低置信度发现或争议升级等场景。

.github/skills/maintainer-lookup/SKILL.md nasa/fprime

触发场景

代码审查中发现低置信度问题 线程被不当解决 贡献者与代理存在分歧 聚合器建议关闭

安装

npx skills add nasa/fprime --skill maintainer-lookup -g -y
更多选项

非标准路径

npx skills add https://github.com/nasa/fprime/tree/devel/.github/skills/maintainer-lookup -g -y

不安装直接使用

npx skills use nasa/fprime@maintainer-lookup

指定 Agent (Claude Code)

npx skills add nasa/fprime --skill maintainer-lookup -a claude-code -g -y

安装 repo 全部 skill

npx skills add nasa/fprime --all -g -y

预览 repo 内 skill

npx skills add nasa/fprime --list

SKILL.md

Frontmatter
{
    "name": "maintainer-lookup",
    "description": "Use when an agent needs to ping the right maintainer for a finding (low-confidence finding, improper resolution, disagreement escalation, or recommend-close)."
}

Skill: Maintainer lookup (whom to ping)

Every F Prime review agent that needs to escalate a finding — because it is low-confidence (review contract §4), because a thread was improperly resolved (review contract §7), because the contributor and agent disagree (review contract §11), or because the aggregator is recommending close (review-summary §5e) — uses this skill to resolve the right GitHub handles to cc.

This skill returns a list of handles. Callers format the ping line themselves (the wording varies by trigger).


1. Four-step resolution

Apply in order; stop at the first step that yields at least one handle. Always include the fallback as a safety net unless the earlier step explicitly provided a complete maintainer set.

Step 1 — README.md "Core Maintainer(s)" table

Parse the F Prime repository README.md for a markdown table whose header begins with | Product and contains a Core Maintainer(s) column. For the fprime repository, the relevant row is:

| F Prime | @LeStarch, @thomas-bc |

The skill returns [@LeStarch, @thomas-bc].

The exact section currently lives near the "Meet the Team" heading in README.md. The skill MUST re-parse README.md at runtime rather than hard-coding the handles, so updates to the maintainer list are picked up automatically.

For non-fprime products that may use this contract in the future (e.g., fprime-tools, fprime-gds), the same parser maps the repo name to its row.

Step 2 — Security Overseer (security agent only)

The security agent additionally consults the "Role / Team Member" table at the top of README.md and adds the Security Overseer entry to the maintainer list. For fprime this is @bitWarrior.

Non-security agents skip this step.

Step 3 — git log recent approvers

git log --merges --first-parent -n 20 \
  --pretty=format:'%an <%ae> %s' \
  -- <touched-file-path>

Extract approver handles from merge-commit messages (the Approved- by: trailers, or the Merged via PR GitHub convention). Limit to distinct contributors who have approved within the last 90 days. Add these handles to the list.

This step is best-effort; when grepping the log produces no clear handles, skip.

Step 4 — Fallback

If none of steps 1–3 yielded a single handle, return the project fallback set:

[@LeStarch, @thomas-bc]

This guarantees that every low-confidence / improperly-resolved / disagreement ping has at least one recipient.


2. Per-trigger conventions

Callers format the cc line according to the trigger:

Trigger Line shape
Low-confidence finding (review contract §4) cc @<m1> @<m2> — low-confidence finding, please confirm.
Improper resolution (review contract §7) cc @<m1> @<m2> — contributor resolved without addressing; please adjudicate.
Disagreement escalation (review contract §11) cc @<m1> @<m2> — needs human adjudication.
Recommend close (aggregator §5e) cc @<m1> @<m2> — please confirm close.

3. De-duplication

If the same maintainer is returned by multiple steps (e.g., README and git-log both list @LeStarch), include them once.

Order the handles by the order steps yielded them (README first, then Security Overseer where applicable, then git-log).


4. Worked example — security finding on Svc/CmdDispatcher

  1. Step 1: README.md@LeStarch, @thomas-bc.
  2. Step 2: Security Overseer → @bitWarrior.
  3. Step 3: git log -- Svc/CmdDispatcher/CmdDispatcher.cpp → suppose the recent merges are by @thomas-bc (already in list) and @SterlingPeet. Add @SterlingPeet.
  4. Returned list: [@LeStarch, @thomas-bc, @bitWarrior, @SterlingPeet].

Caller formats:

cc @LeStarch @thomas-bc @bitWarrior @SterlingPeet — low-confidence finding, please confirm.

For brevity, the security agent may cap the ping at the first 3 handles in the returned list when the line would otherwise wrap on narrow screens; the README + Security Overseer entries are always preserved.


5. Worked example — supply-chain finding on a workflow

  1. Step 1: README.md@LeStarch, @thomas-bc.
  2. Step 2: Supply-chain is not the security agent → skip.
  3. Step 3: git log -- .github/workflows/cmake-test.yml → recent approvers are @thomas-bc (already in list) and @kevin-f-ortega.
  4. Returned list: [@LeStarch, @thomas-bc, @kevin-f-ortega].

6. One-line summary

README "Core Maintainer(s)" first → +Security Overseer for security agent → recent merge approvers from git log → fallback @LeStarch, @thomas-bc. De-duplicate, preserve order.

版本历史

  • 7d8f579 当前 2026-08-20 11:33

同 Skill 集合

.github/skills/agent-skill-authoring/SKILL.md
.github/skills/ci-test-runtime-policy/SKILL.md
.github/skills/fprime-cmake-build-system/SKILL.md
.github/skills/fprime-component-design-fpp/SKILL.md
.github/skills/fprime-component-development/SKILL.md
.github/skills/fprime-component-implementation/SKILL.md
.github/skills/fprime-component-integration-test/SKILL.md
.github/skills/fprime-component-requirements/SKILL.md
.github/skills/fprime-component-unit-test/SKILL.md
.github/skills/fprime-ground-input-tracing/SKILL.md
.github/skills/fprime-hardware-input-tracing/SKILL.md
.github/skills/fprime-topology-development/SKILL.md
.github/skills/fprime-unit-testing/SKILL.md
.github/skills/jpl-design-principles/SKILL.md
.github/skills/post-inline-review/SKILL.md
.github/skills/pr-diff-scoping/SKILL.md
.github/skills/prompt-injection-precheck/SKILL.md
.github/skills/re-review-state/SKILL.md
.github/skills/triage-classifier/SKILL.md
.github/skills/write-system-functional-doc/SKILL.md
.github/skills/fprime-cpp-design/SKILL.md

元信息

文件数
0
版本
efce12d
Hash
155ba5ac
收录时间
2026-08-20 11:33

首页 - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-09-17 00:28
浙ICP备14020137号-1