CtrlK
BlogDocsLog inGet started
Tessl Logo

wagneripjr/doc-this

Reverse-engineer a legacy codebase into ATDD-ready, traceable specifications

69

Quality

86%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Low

Low-risk findings worth noting

Overview
Quality
Evals
Security
Files

modules-schema.mdskills/doc-this-code-analyst/references/

Schema — .doc-this/context/modules.json

Generated by the Code Analyst. Consumed by Detective, Architect, and Writer.

Full structure

{
  "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"
    }
  ]
}

Confidence levels (binary per the describe-only pact)

ValueMarkerMeaning
"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 🔴.

Required fields per module

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.

Top-level exclusions

Source 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).

Completeness invariant (enforced by the coverage gate and the Reviewer)

⋃ modules[].all_files  ∪  exclusions[].path  ∪  manifest non-source entries
  ==  every path in file-manifest.json

Any 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.

Note

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.

tile.json