# Discover and Trace Specification Requirements

Specification requirements are difficult to locate and trace across repositories. This skill extracts requirement IDs, titles, paths, links, and hashes into a sorted manifest.

## Install

```bash
npx skillstore add consiliency/spec-discovery
```

## Metadata

- Status: approved
- Slug: consiliency-spec-discovery
- Skillstore revision: r1
- Version status: missing
- Tree hash: 873b89af0cb5b2452c47ad25400b1d0a426fc6992a2e39b824b3715b4ed537c5
- Author: Consiliency
- GitHub username: Consiliency
- License: MIT
- Repository: https://github.com/Consiliency/treesitter-chunker/tree/main/.ai-dev-kit/skills/spec-discovery
- Ref: 635f69fb8d2f4e6330ba47a4e5a0fb239c04d110
- Supported tools: Claude, Codex, Claude Code
- Audit status: complete
- Agent install advisory: allowed
- Manual install advisory: allowed
- Artifact signature: available
- Audit attestation: unavailable
- Human verification: not\_verified
- Risk factors: external\_commands
- Quality score: 78
- Quality tier: bronze
- Public page: https://skillstore.pages.dev/skills/consiliency-spec-discovery
- Manifest: https://skillstore.pages.dev/api/skills/consiliency-spec-discovery/manifest

## Capabilities

- Searches a primary repository and additional local repositories for specification files.
- Includes external request specifications and excludes template directories.
- Extracts requirement IDs and titles from matching Markdown headings.
- Normalizes repository-relative paths and creates lowercase, hyphenated links.
- Computes SHA-256 content hashes for traceability.
- Sorts results by repository, path, and requirement ID.

## Use Cases

- Create a requirement inventory: Collect requirement IDs, titles, source paths, links, and hashes from a documentation repository.
- Prepare implementation traceability: Find relevant specifications before coding and retain stable source metadata for reviews.
- Supply downstream agent context: Produce a compact JSON or TOON manifest for planning, analysis, and documentation workflows.

## Prompt Templates

### Scan the current repository

```
Scan the current repository for specifications. Return a JSON manifest with each requirement ID, title, relative path, link, and SHA-256 hash.
```

### Include external requests

```
Scan {root} and include external requests. Exclude templates, preserve ID and title casing, and report duplicate IDs in notes.
```

### Scan several repositories

```
Use {primary_root} as ROOT and {additional_roots} as EXTRA_REPOS. Produce a sorted TOON manifest and identify every duplicate requirement ID.
```

### Build an auditable manifest

```
Discover requirements across {repository_roots}. Verify heading matches, normalize links, compute content hashes, and explain skipped files or empty results.
```

## Limitations

- Recognizes only headings with requirement IDs that begin with REQ- and match the documented pattern.
- Reads local repository roots and does not clone or fetch remote repositories.
- Does not assess requirement quality, completeness, or implementation status.
- Flags duplicate requirement IDs but does not resolve them.

## Best Practices

- Provide explicit repository roots and confirm that each root is available locally.
- Use consistent REQ- identifiers and descriptive Markdown heading titles.
- Review duplicate IDs and unmatched headings before using the manifest downstream.

## Anti Patterns

- Do not expect requirements in body text to match when they are absent from headings.
- Do not treat a content hash as proof that a requirement is correct or approved.
- Do not ignore duplicate ID notes when combining several repositories.

## Security Audit

- Audited at: 2026-07-13T17:20:56.318\+00:00
- Summary: All ten static findings are false positives caused by Markdown inline code and fenced code delimiters in SKILL.md. None invokes Ruby, a shell, or another external command. No prompt injection, network access, credential handling, or command execution instructions were found.

## Stats

- Views: 243
- Downloads: 8
- Favorites: 0
- Popularity score: 0
