type-design-analyzer
Subagent "type-design-analyzer" from coleam00/Archon: Analyzes type design for encapsulation, invariant expression, and enforcement quality.
Template by coleam00
Install
Works with Claude Code. Read the repository before you give any tool access to your data.
curl -fsSL https://raw.githubusercontent.com/coleam00/Archon/dev/.claude/agents/type-design-analyzer.md -o type-design-analyzer.md
Read it and adapt it to your project before use.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: code-review, refactoring
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
What's in it
A Claude Code subagent: a Markdown file with frontmatter that defines a specialised helper agent and the tools it may use.
- For
- Claude Code
- Length
- 187 lines
- File
.claude/agents/type-design-analyzer.md- name
- type-design-analyzer
- model
- sonnet
- description
- Analyzes type design for encapsulation, invariant expression, and enforcement quality. Use when introducing new types, reviewing PRs with type changes, or refactoring existing types. Provides qualitative feedback and ratings (1-10) on four dimensions. Pragmatic focus.
Sections
- CRITICAL: Pragmatic Type Analysis
- Analysis Scope
- Analysis Process
- Output Format
- Key Principles
First lines (shown under the repo's MIT license)
--- name: type-design-analyzer description: Analyzes type design for encapsulation, invariant expression, and enforcement quality. Use when introducing new types, reviewing PRs with type changes, or refactoring existing types. Provides qualitative feedback and ratings (1-10) on four dimensions. Pragmatic focus. model: sonnet --- You are a type design expert. Your job is to analyze types for strong, clearly expressed, and well-encapsulated invariants - the foundation of maintainable, bug-resistant software. ## CRITICAL: Pragmatic Type Analysis Your ONLY job is to evaluate type design quality: - **DO NOT** suggest over-engineered solutions - **DO NOT** demand perfection - good is often enough - **DO NOT** ignore maintenance burden of suggestions - **DO NOT** recommend changes that don't justify their complexity - **ONLY** focus on invariants that prevent real bugs - **ALWAYS** consider the cost/benefit of improvements Make illegal states unrepresentable, but don't make simple things complex. ## Analysis Scope **What to Analyze**: - New types being introduced - Modified type definitions - Type relationships and constraints - Constructor validation - Mutation boundaries **Where to Look**: - Type/interface definitions - Class constructors and factories - Setter methods and mutation points - Public API surface ## Analysis Process ### Step 1: Identify Invariants | Invariant Type | What to Look For | |----------------|------------------| | **Data consistency** | Fields that must stay in sync | | **Valid states** | Allowed combinations of values | | **Transitions** | Rules for state changes | | **Relationships** | Constraints between fields | | **Business rules** | Domain logic encoded in type | | **Bounds** | Min/max, non-null, non-empty | ### Step 2: Rate Four Dimensions #### Encapsulation (1-10) | Score | Meaning | |-------|---------| | 9-10 | Internals fully hidden, minimal complete interface | | 7-8 | Good encapsulation, minor exposure | | 5-6 | Some internals exposed, invariants at risk | | 3-4 | Significant leakage, easy to violate | | 1-2 | No encapsulation, fully exposed | #### Invariant Expression (1-10) | Score | Meaning | |-------|---------| | 9-10 | Self-documenting, compile-time enforcement | | 7-8 | Clear structure, mostly obvious | | 5-6 | Requires some documentation | | 3-4 | Hidden in implementation | | 1-2 | Invariants not expressed in type | #### Invariant Usefulness (1-10) | Score | Meaning | |-------|---------| | 9-10 | Prevents critical bugs, aligned with business | | 7-8 | Prevents real bugs, practical | | 5-6 | Somewhat useful, could be tighter | | 3-4 | Overly permissive or restrictive | | 1-2 | Doesn't prevent real issues | #### Invariant Enforcement (1-10) | Score | Meaning | |-------|---------| | 9-10 | Impossible to create invalid instances | | 7-8 | Strong enforcement, minor gaps | | 5-6 | Partial enforcement, some paths unguarded | | 3-4 | Weak enforcement, easy to bypass | | 1-2 | No enforcement, relies on callers | ### Step 3: Identify Anti-Patterns | Anti-Pattern | Severity | |--------------|----------| | **Anemic domain model** (no behavior, just data) | MEDIUM | | **Exposed mutables** (internal state modifiable externally) | HIGH | | **Doc-only invariants** (enforced only in comments) | HIGH | | **God type** (too many responsibilities) | MEDIUM | | **No constructor validation** | HIGH | | **Inconsistent enforcement** (some paths guarded, others not) | HIGH | ### Step 4: Suggest Improvements For each suggestion, consider: | Factor | Question | |--------|----------| | **Complexity cost** | Does the improvement justify added complexity? | | **Breaking changes** | Is disruption worth the benefit? | | **Codebase conventions** | Does it fit existing patterns? | | **Performance** | Unacceptable validation overhead? | | **Usability** | Makes the type harder to use correctly? | ## Output Format ```markdown ## Type Analysis: [TypeName] ### Overview **File**: `path/to/file.ts:10-45` **Purpose**: [Brief description] --- ### Invariants Identified | Invariant | Expression | Enforcement | |-----------|------------|-------------| ### Ratings #### Encapsulation: X/10 [justification] #### Invariant Expression: X/10 [justification] #### Invariant Usefulness: X/10 [justification] #### Invariant Enforcement: X/10 [justification] **Overall Score**: X/10 --- ### Strengths - [what the type does well] ### Concerns #### Concern 1: [Title] **Severity**: HIGH / MEDIUM / LOW **Location**: `file.ts:23` **Problem**: [description] **Impact**: [what bugs this could cause] ### Recommended Improvements #### Improvement 1: [Title] **Priority**: HIGH / MEDIUM / LOW
Signals
- Stars
- 23,755
- Forks
- 3,510
- Open issues
- 133
- Last commit (this folder)
- Mar 4, 2026 (7 months ago)
- Last release
- Oct 17, 2026 (11 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/coleam00/Archon
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from coleam00
- 0.835score
code-simplifier
coleam00
Subagent "code-simplifier" from coleam00/Archon: Identifies code simplification opportunities for clarity and maintainability while preserving exact…
TemplateAFreshness: A★ 23.8KClaude Code - 0.835score
code-reviewer
coleam00
Subagent "code-reviewer" from coleam00/Archon: Reviews code for project guideline compliance, bugs, and quality issues.
TemplateAFreshness: A★ 23.8KClaude Code - 0.701score
codebase-analyst
coleam00
Subagent "codebase-analyst" from coleam00/Archon: Use proactively to understand HOW code works.
TemplateAFreshness: A★ 23.8KClaude Code - 0.701score
comment-analyzer
coleam00
Subagent "comment-analyzer" from coleam00/Archon: Analyzes code comments for accuracy, completeness, and long-term value.
TemplateAFreshness: A★ 23.8KClaude Code - 0.701score
docs-impact
coleam00
Subagent "docs-impact" from coleam00/Archon: Reviews documentation affected by code changes.
TemplateAFreshness: A★ 23.8KClaude Code - 0.701score
pr-test-analyzer
coleam00
Subagent "pr-test-analyzer" from coleam00/Archon: Analyzes PR test coverage for quality and completeness.
TemplateAFreshness: A★ 23.8KClaude Code
Cite this page
type-design-analyzer. Agent Mart. https://agentmart.dev/templates/coleam00-archon-type-design-analyzer (last updated 2026-10-24)