Skip to content
Back to skills

Requests

ASecurity

> **Doc class**: Request ticket (date-prefixed non-lifecycle — per `@rules/docs-numbering.md`). > **Created**: 2026-04-17 > **Status**: Candidate Complete > **Priority**: P1 > **Tech Spec**: [2-tech-spec.md](../2-tech-spec.md) > **Requirements**: [1-requirements.md](../1-requirements.md)

  • 192 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 4, 2026
ai-agentstestingsecurity

Security analysis

A100/100

Pro scans all 7 files and shows the line behind each finding

Scanned September 4, 2026

npx -y skills add sd0xdev/sd0x-harness --skill requests --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Requests?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Requests
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/sd0xdev-requests-41471a8c/badge)](https://www.skillsdirectory.com/skills/sd0xdev-requests-41471a8c)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
# T3 — `/recap-ask` Skill

> **Doc class**: Request ticket (date-prefixed non-lifecycle — per `@rules/docs-numbering.md`).
> **Created**: 2026-04-17
> **Status**: Candidate Complete
> **Priority**: P1
> **Tech Spec**: [2-tech-spec.md](../2-tech-spec.md)
> **Requirements**: [1-requirements.md](../1-requirements.md)

## Background

`/recap-ask` 為 Shape B+D Hybrid 的 Q&A sub-skill,負責把已產出的 recap doc 作為 primary context,支援使用者針對本輪變更追問,並在問題超出 recap 範圍時主動轉介 `/ask`(FR-4、FR-5、FR-8)。可與 T1/T2 平行開發(非 blocker)。

## Requirements

- 實作 `.claude/skills/recap-ask/SKILL.md`(intent classification + context binding)
- Q&A context 以 recap doc 全載入為 primary,lazy-fetch 被引用的 file:line
- 超出 recap 範圍的問題:主動轉介 `/ask`(default 行為,非嚴格拒答)
- 結束時提示 promote;同意後呼叫 `/create-request --update` 寫回(NFR-5)
- 重用 `/ask` Phase 2 context gathering pattern(NFR-5)

## Scope

| Scope | Description |
|-------|-------------|
| In | `.claude/skills/recap-ask/` SKILL.md + qa-prompt + 對應 integration test |
| Out | Scope detection(T1)、recap doc 產出(T2)、wrapper 整合(T4) |

## Related Files

| File | Action | Description |
|------|--------|-------------|
| `.claude/skills/recap-ask/SKILL.md` | New | 主 skill 定義 |
| `.claude/skills/recap-ask/references/qa-prompt.md` | New | Q&A prompt + intent classification rules |
| `test/skills/recap-ask.test.js` | New | Integration test:context binding、out-of-scope redirect、promote 流程 |

## Acceptance Criteria

- [x] `/recap-ask <q> --context <recap-path>` 可針對 recap 內容回答並引用 file:line(AS-4) — `test/skills/recap-ask.test.js:120` (Output Format + Sources + `<path>:<line>`)
- [x] 偵測到 out-of-scope 問題時,**先輸出簡短聲明「此問題超出本輪 recap 範圍」再附 `/ask` 調用範例**(明確行為避免實作歧義;Q3 default) — `test/skills/recap-ask.test.js:158`
- [x] intent classification 三類(recap-scoped / out-of-scope / ambiguous)行為正確,ambiguous 觸發 `AskUserQuestion` — `test/skills/recap-ask.test.js:144`
- [x] 結束階段提示 promote;同意時呼叫 `/create-request --update`(AS-11) — `test/skills/recap-ask.test.js:234`
- [x] Q&A 首 token 延遲 p95 ≤ 10s(NFR-3) — `test/skills/recap-ask.test.js:250` (structural declaration; runtime measurement is ENV_UNAVAILABLE)
- [x] Lazy-fetch 被引用檔案前:路徑 `startsWith(repo_root + "/")` 檢查,拒絕 `..` traversal 與外部 symlink(NFR-8) — `test/skills/recap-ask.test.js:99,199,215`
- [x] 回覆內容經 `security-redact.js` 過濾(NFR-7) — `test/skills/recap-ask.test.js:186`
- [x] Pass /codex-review-fast — Dual-review (Codex + secondary) concluded ✅ Ready after P2/Nit Quality Sweep on 2026-04-17

**Exception log**:
- `[AC_EXCEPTION] AC-5 (NFR-3 p95 ≤ 10s) reason=ENV_UNAVAILABLE — runtime latency cannot be measured in static structural tests; declaration-level assertion is the structural surrogate until runtime telemetry lands. expiry=2026-05-01T00:00:00+08:00 VALID`

**Status lifecycle**: Pending / In Progress / Candidate Complete / Completed

## Progress

| Phase | Status | Note |
|-------|--------|------|
| Analysis | ✅ | Scope, ACs, reuse anchors mapped per plan `glittery-marinating-donut.md` |
| Development | ✅ | `skills/recap-ask/SKILL.md` (+190 lines) + `references/qa-prompt.md` (+170 lines). Dual review (Codex + secondary) → ✅ Ready after P2/Nit sweep |
| Testing | ✅ | `test/skills/recap-ask.test.js` 25 passing tests; full suite 1361/1363 pass (2 skipped, 0 fail) |
| Acceptance | ⚠️ | Adequacy Gate: ⚠️ Adequate with exceptions (1/1 cap; AC-5 ENV_UNAVAILABLE valid). `/precommit-fast` ✅ PASS |

## References

- Tech Spec §3.4.3 `/recap-ask` Q&A 流程
- Requirements FR-4, FR-5, FR-8, NFR-3, NFR-5, NFR-7
- Reuse anchor: `.claude/skills/ask/SKILL.md` L76-92

Files in this skill

  • 2026-04-17-t1-scope-detector-redaction-util.md3.4 KB
  • 2026-04-17-t2-recap-doc-skill.md4.9 KB
  • 2026-04-17-t3-recap-ask-skill.md4 KB
  • 2026-04-17-t4-post-dev-recap-wrapper.md4.2 KB
  • 2026-04-17-t5-skill-registration.md4.7 KB
  • 2026-04-17-t6-status-tracking.md5.6 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…