mirror of
https://github.com/anthropics/claude-plugins-official.git
synced 2026-05-13 15:05:51 -03:00
Fixes found by running the discovery workflow against the AWS CardDemo mainframe sample (~50 KLOC of COBOL/CICS/JCL/BMS/VSAM): - modernize-assess: add scc -> cloc -> find/wc fallback chain with the COCOMO-II formula so Step 1 works when scc isn't installed; same for portfolio-mode cloc/lizard. Drop the reference to a specific agent-spawning tool name (just "in parallel"). Sharpen the structural- map subagent prompt: 5-12 domains, subgraph clustering, ~40-edge cap, repo-relative paths, dangling-reference check. - modernize-map: expand the parse-target list with the things a literal-minded reader would miss on a real mainframe codebase — CICS CSD DEFINE TRANSACTION/FILE for entry points and online file I/O, EXEC CICS file ops, SELECT...ASSIGN TO joined with JCL DD, EXEC SQL table refs (not JCL DD), SEND/RECEIVE MAP, dynamic data-name XCTL resolution, COBOL fixed-format column slicing. Without these the dead-code list is wrong (most CICS programs look unreachable). Also write a machine-readable topology.json alongside the summary. - modernize-extract-rules: add a Priority (P0/P1/P2) field with a heuristic, and an optional Suspected-defect field. modernize-brief reads P0 rules to build the behavior contract, but the Rule Card had no priority slot — the chain was broken. - modernize-brief: read the new P0 tags; flag low-confidence P0 rules as SME blockers. - modernize-reimagine: drop "for the demo" wording. - security-auditor agent: add mainframe/COBOL coverage items (RACF, JCL/PROC creds, BMS field validation, DB2 dynamic SQL, copybook PII) and mark web-only items as such so it adapts to the target stack. - README: add Optional Tooling section and a symlink example for the expected layout.
77 lines
3.2 KiB
Markdown
77 lines
3.2 KiB
Markdown
---
|
|
description: Mine business logic from legacy code into testable, human-readable rule specifications
|
|
argument-hint: <system-dir> [module-pattern]
|
|
---
|
|
|
|
Extract the **business rules** embedded in `legacy/$1` into a structured,
|
|
testable specification — the institutional knowledge that's currently locked
|
|
in code and in the heads of engineers who are about to retire.
|
|
|
|
Scope: if a module pattern was given (`$2`), focus there; otherwise cover the
|
|
entire system. Either way, prioritize calculation, validation, eligibility,
|
|
and state-transition logic over plumbing.
|
|
|
|
## Method
|
|
|
|
Spawn **three business-rules-extractor subagents in parallel**, each assigned
|
|
a different lens. If `$2` is non-empty, include "focusing on files matching
|
|
$2" in each prompt.
|
|
|
|
1. **Calculations** — "Find every formula, rate, threshold, and computed value
|
|
in legacy/$1. For each: what does it compute, what are the inputs, what is
|
|
the exact formula/algorithm, where is it implemented (file:line), and what
|
|
edge cases does the code handle?"
|
|
|
|
2. **Validations & eligibility** — "Find every business validation, eligibility
|
|
check, and guard condition in legacy/$1. For each: what is being checked,
|
|
what happens on pass/fail, where is it (file:line)?"
|
|
|
|
3. **State & lifecycle** — "Find every status field, state machine, and
|
|
lifecycle transition in legacy/$1. For each entity: what states exist,
|
|
what triggers transitions, what side-effects fire?"
|
|
|
|
## Synthesize
|
|
|
|
Merge the three result sets. Deduplicate. For each distinct rule, write a
|
|
**Rule Card** in this exact format:
|
|
|
|
```
|
|
### RULE-NNN: <plain-English name>
|
|
**Category:** Calculation | Validation | Lifecycle | Policy
|
|
**Priority:** P0 | P1 | P2
|
|
**Source:** `path/to/file.ext:line-line`
|
|
**Plain English:** One sentence a business analyst would recognize.
|
|
**Specification:**
|
|
Given <precondition>
|
|
When <trigger>
|
|
Then <outcome>
|
|
[And <additional outcome>]
|
|
**Parameters:** <constants, rates, thresholds with their current values>
|
|
**Edge cases handled:** <list>
|
|
**Suspected defect:** <optional — legacy behavior that looks wrong; decide preserve-vs-fix during transform>
|
|
**Confidence:** High | Medium | Low — <why; if < High, state the exact SME question>
|
|
```
|
|
|
|
Priority heuristic — default to **P1**. Assign **P0** if the rule moves money,
|
|
enforces a regulatory/compliance requirement, or guards data integrity (and
|
|
flag P0 rules at <High confidence as SME-required). Assign **P2** for
|
|
display/formatting/convenience rules. The downstream `/modernize-brief`
|
|
behavior contract is built from the P0 rules, so assign deliberately.
|
|
|
|
Write all rule cards to `analysis/$1/BUSINESS_RULES.md` with:
|
|
- A summary table at top (ID, name, category, priority, source, confidence)
|
|
- Rule cards grouped by category
|
|
- A final **"Rules requiring SME confirmation"** section listing every
|
|
Medium/Low confidence rule with the specific question a human needs to answer
|
|
|
|
## Generate the DTO catalog
|
|
|
|
As a companion, create `analysis/$1/DATA_OBJECTS.md` cataloging the core
|
|
data transfer objects / records / entities: name, fields with types, which
|
|
rules consume/produce them, source location.
|
|
|
|
## Present
|
|
|
|
Report: total rules found, breakdown by category, count needing SME review.
|
|
Suggest: `glow -p analysis/$1/BUSINESS_RULES.md`
|