architectural-decisions
GitHub用于查询代码架构决策背景、评估变更影响及生成决策健康报告的 Skill。支持语义搜索文件决策、查看决策看板,辅助理解设计 rationale 并记录新决策。
Trigger Scenarios
Install
npx skills add repowise-dev/repowise --skill architectural-decisions -g -y
SKILL.md
Frontmatter
{
"name": "architectural-decisions",
"description": "Use when encountering questions about WHY code is built a certain way, when about to make architectural changes (new patterns, restructuring, choosing between approaches), or when the user asks about design rationale in a Repowise-indexed codebase (.repowise\/ directory exists). Also activates when commit messages or code comments contain decision signals like \"WHY:\", \"DECISION:\", \"TRADEOFF:\", \"ADR:\".\n",
"user-invocable": false
}
Architectural Decisions with Repowise
Repowise captures architectural decisions — the why behind how code is built.
get_why has four modes — pick by what you pass:
get_why(query="why is auth using JWT?")— keyword + semantic decision search.get_why(query="src/auth/service.py")— decisions governing that file, plus its origin story and an alignment score (does the file still follow its own ADRs?).get_why(query="why was caching added?", targets=["src/auth/cache.py"])— target-anchored search; decisions touching the targets get boosted.get_why()— the decision-health dashboard.
Decisions are mined from five sources (ADR files, PR and squash-commit bodies,
inline markers, git archaeology, and centrality-bounded code comments). Each
rationale traces to a verbatim source span, stamped exact / fuzzy / unverified.
When no decision exists for a path, get_why falls back to git archaeology so
the call is never empty.
When the user asks "why is X built this way?"
Call get_why(query="X").
When about to make an architectural change
- Call
get_why(query="the specific area you're changing")to find existing decisions that govern that area. - If decisions are found, present them to the user before proceeding — they may not want to contradict an existing architectural choice.
- If no decisions are found, proceed but note that no recorded decision governs this area.
When called with no specific query
Call get_why() with no arguments to get the decision-health dashboard:
- Stale decisions that may no longer apply
- Proposed decisions awaiting confirmation
- Ungoverned hotspots (high-churn files with no recorded decisions)
The same signals surface in the CLI via repowise decision health /
/repowise:decision, and you can query why mid-task with repowise why /
/repowise:why (the get_why adapter). Review auto-proposed decisions with
repowise decision confirm.
When a file has decision markers
If you see # WHY:, # DECISION:, # TRADEOFF:, or # ADR: comments in code, call get_context(targets=["that_file.py"]) to see the full decision record with context and affected modules.
Recording new decisions
If the user makes an architectural decision during the conversation, suggest: "Want to record this decision? Add a # DECISION: comment in the relevant code, or run repowise decision add to capture it formally."
Version History
-
370793f
Current 2026-08-19 23:15
决策挖掘源从8个缩减为5个(移除CHANGELOG、README/docs等),修正了相关文档和基准测试数据。
- b5f4753 2026-07-25 05:12


