tas-03-architecture-normalizer
Skill1 starsChanged 41 days agoMITView on GitHub
Normalize architecture entities after analysis and grouping. Use when Codex needs to read analyzer `output.json` files under `01-analyzer` plus `02-grouper/grouped.json`, detect aliases and duplicate names across projects, services, datastores, integrations, and platforms, then write deterministic normalization outputs and an append-only decisions log under `03-normalizer`.
In this repository20 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- advisorSkill
- code-reviewSkill
- debugSkill
- decisionSkill
- modernize-evalSkill
- modernize-planSkill
- new-featureSkill
- nf-avaloniaSkill
- nf-designSkill
- nf-specSkill
- nf-tasksSkill
- parallel-execSkill
- project-takeoverSkill
- repo-initSkill
- session-closeSkill
- tas-01-project-architecture-analyzerSkill
- tas-02-architecture-project-grouperSkill
- tas-04-generatorSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
22 rules. About 0 are common, 18 are distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈18
Distinctive · estimate
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- could be automatic: a setting could enforce it
- Distinctive: line 8
Run the bundled normalizer script against an architecture workspace after the analyzer and grouper have produced outputs.
- Distinctive: line 25
Write all outputs to:
- Distinctive: line 37
Use the template in references/architecture-normalization-template.md unless the user explicitly requests a different format.
- Very specific: line 44
If a value is unavailable, render No data available
- Distinctive: line 49
Leave checklist items unchecked unless the user explicitly asks to mark review progress
- Distinctive: line 50
Do not add, remove, or reorder top-level sections unless explicitly requested by the user
- Distinctive: line 51
Do not generate freeform markdown structure when the template is available
- Distinctive: line 62
keep preferred spellings stable across runs
- Distinctive: line 63
avoid re-guessing known aliases
- Distinctive: line 65
Do not delete original names from outputs even when aliases collapse into one canonical entity.
- Very specific: line 76
Prefer manual_review if unsure
- Distinctive: line 77
Never delete original names
- Distinctive: line 79
Do not merge entities across different entity types unless explicit evidence supports it
- Distinctive: line 80
Keep output deterministic by sorting entities, aliases, and references
- Distinctive: line 98
Run the normalizer script first.
- Very specific: line 100
Check manual_review_queue before accepting merge recommendations.
- Very specific: line 101
If repeated ambiguities are legitimate aliases, add them to assets/alias_mappings.json and rerun.
- Distinctive: line 102
If manual review changes normalization conclusions:
- Distinctive: line 109
Treat explicit alias-map entries as stronger than heuristic similarity.
- Distinctive: line 110
Treat case changes, punctuation changes, singular/plural drift, and known abbreviations as weak alias clues unless another signal supports …
- Distinctive: line 111
Use grouped platforms and cross-project dependencies to support entity resolution, not to override weak evidence.
- Distinctive: line 112
Keep conflicting names separate when entity type is unclear.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
TAS 03 Architecture Normalizer
Run the bundled normalizer script against an architecture workspace after the analyzer and grouper have produced outputs. Prefer conservative canonicalization, preserve every original name as an alias, and send ambiguous matches to manual review instead of forcing merges.
Input
- Require
architectureWorkspaceFolder.
Read Scope
Read:
<architectureWorkspaceFolder>/01-analyzer/**/output.json<architectureWorkspaceFolder>/02-grouper/grouped.json
Ignore invalid analyzer outputs. Treat missing grouped.json as a valid degraded run and record it in unknowns.
Output Location
Write all outputs to:
<architectureWorkspaceFolder>/03-normalizer/
The script must:
- Overwrite
normalized.json - Overwrite
normalized.md - Append to
decisions.mdwithout deleting prior entries
Markdown Template
Use the template in references/architecture-normalization-template.md unless the user explicitly requests a different format.
When generating normalized.md:
- Render the markdown from the template file
- Populate the template using data from
normalized.json - Replace all template placeholders with actual values
- If a value is unavailable, render
No data available - Preserve the metadata header exactly as defined in the template
- Preserve the confidence note block
- Preserve the "Source" and "Review status" block
- Preserve the "Reviewer Checklist" section
- Leave checklist items unchecked unless the user explicitly asks to mark review progress
- Do not add, remove, or reorder top-level sections unless explicitly requested by the user
- Do not generate freeform markdown structure when the template is available
Alias Mapping
Support a deterministic alias mapping file stored at:
assets/alias_mappings.json
Use it to:
- seed canonical names
- keep preferred spellings stable across runs
- avoid re-guessing known aliases
Do not delete original names from outputs even when aliases collapse into one canonical entity.
Alias-map entries must guide normalization but must not suppress conflicting evidence. If an alias-map entry conflicts with strong evidence from the current run, keep the issue in manual_review_queue and record it in decisions.md.
Normalization Rules
- Detect duplicates
- Identify aliases
- Propose canonical names
- Flag uncertain matches
- Be conservative
- Prefer
manual_reviewif unsure - Never delete original names
- Preserve every original name as an alias or source reference
- Do not merge entities across different entity types unless explicit evidence supports it
- Keep output deterministic by sorting entities, aliases, and references
Required Outputs
normalized.json: strict schema documented in references/output_contract.mdnormalized.md: readable report rendered from the template with all sections preserveddecisions.md: append ambiguous matches, unresolved conflicts, reviewer overrides, and alias-map-driven merge decisions for each run
Each appended entry in decisions.md must include:
- timestamp
- workspace folder
- number of analyzer outputs processed
- whether grouped.json was present
- reviewer or runner (if known)
Review Workflow
- Run the normalizer script first.
- Review
normalized.jsonandnormalized.md. - Check
manual_review_queuebefore accepting merge recommendations. - If repeated ambiguities are legitimate aliases, add them to
assets/alias_mappings.jsonand rerun. - If manual review changes normalization conclusions:
- Update
normalized.jsonfirst - Regenerate
normalized.mdfrom it - Append the rationale to
decisions.md
- Update
Interpretation Guidance
- Treat explicit alias-map entries as stronger than heuristic similarity.
- Treat case changes, punctuation changes, singular/plural drift, and known abbreviations as weak alias clues unless another signal supports them.
- Use grouped platforms and cross-project dependencies to support entity resolution, not to override weak evidence.
- Keep conflicting names separate when entity type is unclear.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

