Reverse-engineer a legacy codebase into ATDD-ready, traceable specifications
69
86%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
.doc-this/context/modules.jsonGenerated by the Code Analyst. Consumed by Detective, Architect, and Writer.
{
"generated_at": "2026-05-04T15:00:00Z",
"exclusions": [
{ "path": "Global.asax.cs", "reason": "app-lifecycle wiring owned by no module; analyzed standalone, cited in code-analysis.md" }
],
"modules": [
{
"name": "auth",
"path": "src/modules/auth",
"purpose": "User authentication and authorization",
"primary_files": [
"src/modules/auth/auth.service.ts",
"src/modules/auth/auth.controller.ts"
],
"all_files": [
"src/modules/auth/auth.service.ts",
"src/modules/auth/auth.controller.ts",
"src/modules/auth/login.aspx",
"src/modules/auth/login.aspx.cs",
"src/modules/auth/seed_roles.sql"
],
"functions": [
{
"name": "login",
"file": "src/modules/auth/auth.service.ts",
"line": 12,
"params": ["email: string", "password: string"],
"returns": "Promise<AuthToken>",
"confidence": "confirmed"
}
],
"entities": [
{
"name": "User",
"fields": [
{ "name": "id", "type": "string", "required": true },
{ "name": "email", "type": "string", "required": true },
{ "name": "password_hash", "type": "string", "required": true },
{ "name": "role", "type": "UserRole", "required": true }
],
"confidence": "confirmed"
}
],
"business_rules": [
{
"description": "Password must be at least 8 characters",
"location": "src/modules/auth/auth.service.ts:45",
"confidence": "confirmed"
}
],
"dependencies": ["users", "notifications"],
"algorithms": [],
"complexity": "medium"
}
]
}| Value | Marker | Meaning |
|---|---|---|
"confirmed" | 🟢 | Extracted directly from code with file:line citation |
"unknown" | 🔴 | Cannot determine from code; recorded in <output_folder>/questions.md |
"inferred" / 🟡 is retired per the describe-only pact. Pattern-based guesses do not produce facts — either find direct evidence and use 🟢, or record 🔴.
name, path, purpose, primary_files, all_files
primary_files — the entry-point subset (controllers, exported services, CLI handlers). Navigation aid only.all_files — the exhaustive list of manifest source files belonging to the module, derived deterministically from .doc-this/context/file-manifest.json by path prefix (see the Code Analyst SKILL, "Per-module file enumeration and routing"). This is the module's coverage universe — markup, SQL, and scripts included.exclusionsSource files deliberately assigned to no module (rare — e.g., a root-level Global.asax.cs). Each entry requires path + reason, and the file must still be analyzed and cited somewhere (exclusion from a module is not exclusion from coverage).
⋃ modules[].all_files ∪ exclusions[].path ∪ manifest non-source entries
== every path in file-manifest.jsonAny manifest source path absent from every all_files and from exclusions is an unassigned coverage hole — the coverage gate lists it and denies the next phase. Assign it to a module or add a justified exclusion; never leave it orphaned.
Save a checkpoint in .doc-this/state.json after each analyzed module, before starting the next one. A module checkpoint requires all_files ⊆ coverage-ledger files_analyzed.
.tessl-plugin
hooks
skills
doc-this
references
scripts
doc-this-architect
references
doc-this-code-analyst
references
doc-this-data-master
doc-this-design-system
doc-this-detective
references
doc-this-help
doc-this-promote
doc-this-reviewer
doc-this-scout
doc-this-tracer
doc-this-viewer
doc-this-visor
doc-this-writer