Skip to content
Back to skills

Ask

ASecurity

Answer questions about the codebase from knowledge files. Use when the user runs /ask or asks a domain/knowledge question about the repos.

  • 2 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 22, 2026
developmentgobashgitapifrontend

Works with

  • api

Security analysis

A100/100

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

Scanned November 9, 2026

npx -y skills add jupes/agent-forge-harness --skill ask --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Ask?

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

Security grade badge for Ask
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/jupes-ask/badge)](https://www.skillsdirectory.com/skills/jupes-ask)

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
---
name: ask
description: Answer questions about the codebase from knowledge files. Use when the user runs /ask or asks a domain/knowledge question about the repos.
---

# /ask — Query Domain Knowledge

Answers questions about the codebase using knowledge files. Flags stale knowledge and spot-checks answers.

## Usage
```
/ask how does authentication work
/ask what is the API contract for the users endpoint
/ask where should I add new API routes
/ask what patterns does the frontend use for state management
```

---

## Step 1 — Load Knowledge Files

```bash
cat knowledge/_shared.yaml
cat knowledge/repos/<most-relevant-repo>.yaml 2>/dev/null || echo "no knowledge file for <most-relevant-repo>"
```

If the question spans multiple repos: load each relevant repo's YAML.

A repo has a knowledge file only after `/add-repo` or `/sync-knowledge` has been run for it;
`knowledge/repos/` is empty in a fresh checkout, and the harness itself has none.

If no knowledge files exist yet:
- Report: "No knowledge files found. Run `/sync-knowledge <repo>` to generate them."
- Attempt to answer from direct code exploration (Steps 2-3)

---

## Step 2 — Staleness Check

For each knowledge file loaded, check how far behind HEAD it is:

```bash
# Get the commit hash when the knowledge file was last updated
git log -1 --format="%H %ai" -- knowledge/repos/<repo>.yaml

# Count commits since then
git rev-list --count <that-hash>..HEAD
```

If a file is **>50 commits behind HEAD**:
```
⚠ knowledge/repos/<repo>.yaml is stale (73 commits behind HEAD).
  Some answers may be outdated. Run: /sync-knowledge <repo>
```

---

## Step 3 — Answer from Knowledge

Synthesize the answer from the loaded YAML files.

Format the answer as:
1. **Direct answer** — 2-4 sentences addressing the exact question
2. **Key files** — list relevant files with line references if known
3. **Pattern/convention** — the standard approach used in this codebase
4. **Example** — a short code snippet if helpful

---

## Step 4 — Spot-Check (mandatory)

Before delivering the answer, verify 2-3 claims against the actual codebase:

```bash
# Verify a claimed file exists
ls src/hooks/useAuth.ts

# Verify a claimed function exists
grep -n "export function useAuth" src/hooks/useAuth.ts

# Verify a claimed pattern is actually used
grep -r "export function use" src/hooks/ --include="*.ts" | head -5
```

If a spot-check fails (file missing, function not found):
- Note the discrepancy: "Knowledge file says X but I couldn't find it — it may have been moved or renamed."
- Correct the answer based on what you actually find
- Flag: "The knowledge file appears stale in this area. Run /sync-knowledge <repo>."

---

## Step 5 — Deliver Answer

```
## Answer: how does authentication work

Authentication in this codebase uses JWT with refresh token rotation.

**Flow:**
1. Login → `POST /api/auth/login` returns `{accessToken, refreshToken}`
2. Access token lives in memory (not localStorage) — 15 min expiry
3. Refresh token is httpOnly cookie — 7 day expiry
4. `useAuth` hook handles auto-refresh before expiry

**Key files:**
- `src/hooks/useAuth.ts` — auth state and refresh logic
- `src/api/auth.ts` — login, logout, refresh API calls
- `src/middleware/requireAuth.ts` — route protection HOC

**Pattern:** All protected routes wrap with `<RequireAuth>` component.
New endpoints require the `Authorization: Bearer <token>` header.

**Spot-checked:**
- ✓ src/hooks/useAuth.ts exists
- ✓ refreshToken function found at line 87
- ✓ RequireAuth component confirmed in src/middleware/

---
Knowledge source: knowledge/repos/my-frontend.yaml (12 commits behind HEAD — reasonably fresh)
```

---

## Handling Missing Knowledge

If the knowledge files don't cover the question:
1. Explore the codebase directly (Grep + Read)
2. Answer from source code
3. Note: "This topic isn't in the knowledge files. Consider running /sync-knowledge to capture it."

Files in this skill

  • SKILL.md3.6 KB
  • agents/openai.yaml215 B

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…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.