architectural-analysis
Read-only architectural audit of a .NET/C# codebase — dead code, duplication, anti-patterns, nullability and type safety, code smells — written to a report…
Skill by Pedro Nauck
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/colibriagile-architectural-analysis
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
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: documents, security
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/architectural-analysis
What's inside
- Skill name
architectural-analysis- Description
- Read-only architectural audit of a .NET/C# codebase — dead code, duplication, anti-patterns, nullability and type safety, code smells — written to a report, never edited. Use when a whole solution or a large module needs an architecture-level health check; it detects the stack first and offers a derived strategy when that stack is not .NET/C#. Don't use for style/formatting, performance profiling, security audits, or feature-level code review.
- License
- MIT
- Metadata
- author: Pedro Nauck · github: https://github.com/pedronauck · repository: https://github.com/pedronauck/skills
- Instructions
- 87 lines in SKILL.md · view on GitHub
Files (6)
- SKILL.md
- openai.yaml · agents/
- report-template.md · assets/
- summary-template.md · assets/
- detection-catalog.md · references/
- foreign-stack-adaptation.md · references/
SKILL.md (first lines)
# Architectural Analysis
Read-only audit of a whole .NET/C# codebase. Report findings only — make no edits. Classification depth for every dimension lives in `references/detection-catalog.md`; each step below names its section — read that section in full before classifying findings in that dimension.
Commands are PowerShell driven by `ripgrep`, run from the repository root. Set the exclusion set once per session and splat it into every sweep, improvised ones included — without it the sweeps report compiler output and generated code as source.
```powershell
$src = @('-g','!**/bin/**','-g','!**/obj/**','-g','!**/*.g.cs','-g','!**/*.Designer.cs')
```
## Steps
### 1. Map the codebase
Start from the build manifests: one sweep both names the stack and lists the projects.
```powershell
rtk rg --files -g '*.sln' -g '*.slnx' -g '*.csproj' -g 'Directory.Build.props' -g 'global.json' -g '*.dproj' -g 'package.json' -g 'pyproject.toml' -g 'go.mod' -g 'Cargo.toml' -g 'pom.xml' -g 'build.gradle*' -g 'Gemfile' -g 'composer.json'
```
A `.sln`, `.slnx`, or `.csproj` alongside `.cs` sources means **.NET/C#** — carry on below. Any other stack — or .NET on a non-C# language such as F# or VB.NET — falls outside this skill's calibration: name the stack you found, name the mismatch, and ask the user whether to continue anyway. On a yes, read `references/foreign-stack-adaptation.md` in full and follow it; it rebuilds the sweeps in steps 1–6 around the detected stack and ends by offering to save that strategy as `architectural-analysis-<stack>`.
On .NET/C#, count the compilable sources and build a todo with one item per `.cs` file. Note the entry points that anchor usage tracing: `Program`/`Startup`, DI registration extensions, controllers and minimal-API endpoint maps, `BackgroundService`/`IHostedService`, each class library's public surface, CLI verbs, test projects.
```powershell
(rtk rg --files -g '*.cs' @src | Measure-Object).Count
rtk rg -n --type cs @src 'class Program|static.*Main\(|MapGet|MapPost|MapControllers|ControllerBase|BackgroundService|IHostedService|AddScoped|AddSingleton|AddTransient'
```
**Done when** the stack is named and either it is .NET/C# or the user has answered the continue question, every source file has a todo entry, and the entry-point list is recorded.
### 2. Detect dead code
For each file in the todo: list the types and members it declares, then search each name for references elsewhere.
```powershell
rtk rg -n --type cs @src '\bSymbolName\b'
rtk rg -n -g '*.razor' -g '*.cshtml' -g '*.xaml' -g '*.axaml' -g '*.json' -g '*.xml' 'SymbolName'
```
Run both sweeps: C# symbols are reached from markup, configuration binding, and DI by name, so a `.cs`-only search reports live code as dead.
Before recording anything as dead, clear it against the "Not dead" list in `references/detection-catalog.md → Dead code` — DI registration, reflection, serialization, markup binding, interface implementation, attribute-driven entry points, and EF Core wiring all count as USED. Record each finding as `file:line`, category, and confidence per that section, then mark the todo item complete.
**Done when** every todo file's declared members are usage-checked and categorized.
### 3. Detect duplication
Surface candidates by similar names, repeated blocks, and competing implementations of one concept — C# scatters these across extension-method classes, helpers, mappers, and a `Utils` per project.
```powershell
rtk rg -n --type cs @src 'static .*(Validate|Parse|Format|Map|Convert|Normalize|Sanitize)\w*\('
rtk rg -n --type cs @src '(record|class|struct|interface|enum) \w*(Dto|Request|Response|Options|Settings|Result)\b'
```
Confirm each candidate group by reading the implementations, then classify and rank it using `references/detection-catalog.md → Duplication`.
**Done when** every candidate group is read and classified.
### 4. Detect anti-patterns
```powershell
rtk rg -c '^' --type cs @src | Sort-Object { [int]($_ -split ':')[-1] } -Descending | Select-Object -First 20
rtk rg -n -g '*.csproj' 'ProjectReference'
rtk rg -n --type cs @src -g '**/*Controller.cs' -g '**/Pages/**' -g '**/Components/**' -g '**/*.razor.cs' 'DbContext|IDbConnection|SqlConnection|SaveChanges'
rtk rg -n --type cs @src 'async void|\.Result\b|\.Wait\(\)|GetAwaiter\(\)\.GetResult\(\)|GetRequiredService<|GetService<|ServiceLocator'
```
Read the largest files for mixed responsibilities; trace the `ProjectReference` graph for assembly-level cycles and the namespace graph for type-level ones; judge each layer and lifetime hit. Check findings against the full set in `references/detection-catalog.md → Anti-patterns`.
**Done when** each of the largest files is judged, the ProjectReference graph is traced, and every hit from the layer and async/lifetime sweeps is classified.
### 5. Detect type and nullability issues
Start from each project's nullable posture: `<Nullable>` absent or `disable` strips null tracking from the whole project and raises the severity of every other finding here.
```powershell
rtk rg -n -g '*.csproj' -g 'Directory.Build.props' '<Nullable>|<TreatWarningsAsErrors>|<WarningsAsErrors>|<LangVersion>'
rtk rg -n --type cs @src '#nullable disable|#pragma warning disable|SuppressMessage|\bdynamic\b|\(object |, object '
rtk rg -n --type cs @src '!\.|!\)|!;|!,| as [A-Z]\w*'
```
For each hit decide whether a precise type, a generic, or a real null check is possible, or whether a genuine error is being suppressed; classify per `references/detection-catalog.md → Type and nullability issues`.
**Done when** every project's nullable posture is recorded and every hit is judged.
### 6. Detect code smells
```powershell
rtk rg -n --type cs @src '^\s*//\s*(public|private|internal|protected|var|if|foreach|return|await|using)'
rtk rg -n --type cs @src '#region|catch\s*\{|catch \(Exception\w*\)\s*\{\s*\}|throw new Exception\('
```
Sweep for long methods, long parameter lists, complex conditionals, magic numbers and string keys, commented-out code, swallowed exceptions, `#region` hiding bulk, and naming that fights C# convention. Thresholds for each smell are in `references/detection-catalog.md → Code smells`.
**Done when** every smell category in that section has been swept.
### 7. Write the report
Populate `assets/report-template.md` and write it to `.audits/architectural-analysis-[timestamp].md`, filling every placeholder from steps 2–6. Keep every section present; where a count is zero, write "None found" rather than deleting the heading.
**Done when** every placeholder is replaced and every section is present.
### 8. Summarize for the user
Populate `assets/summary-template.md` and emit it inline in chat, linking to the full report at the end.
**Done when** the summary is in chat and carries the report path.
## Bundled files
- `references/detection-catalog.md` — .NET/C# classification depth for the five detection dimensions; each of steps 2–6 names its section.
- `references/foreign-stack-adaptation.md` — the non-.NET branch: build a stack-specific strategy, run it, and offer to save it as a derived skill. Reached only from the stack gate in step 1.
- `assets/report-template.md` — the full report written in step 7.
- `assets/summary-template.md` — the chat summary emitted in step 8.From ColibriAgile/agents-instructions, MIT.
More from ColibriAgile/agents-instructions
- 0.570score
colibri-deploy-producao
ColibriAgile
Liberação para produção dos pacotes Colibri a partir de tarefas do Jira: lê uma ou mais chaves (por exemplo WIN-3159), levanta as versões dos pacotes, confere…
SkillAFreshness: AClaude Code +9 - 0.570score
colibri-report-builder
ColibriAgile
Relatório grid do Colibri Reports — cria ou altera relatórios com saída grid (.conf, SQL com bloco de metadados de filtros/ordenação/relacionamento e grid.ini).
SkillAFreshness: AClaude Code +9 - 0.567score
colibri-cis-testes
ColibriAgile
CIS (ColibriServer) em teste no ambiente local: use quando for preciso testar a API REST do CIS isolado em outra porta, ou integrado ao POS ou a outro client.
SkillAFreshness: AClaude Code +9 - 0.566score
colibri-design-kit
ColibriAgile
Colibri Design Kit leva a linha visual das aplicações Colibri (perfis Admin e Operação) a um repositório e mede a aderência a ela, sobre a skill impeccable 4.x.
SkillAFreshness: AClaude Code +9 - 0.565score
commit
ColibriAgile
Cria commits no padrão conventional commits (título + descrição em bullets), tratando primeiro os submódulos com alterações pendentes e depois o repositório…
SkillAFreshness: AClaude Code +9 - 0.529score
agent-customization
ColibriAgile
**WORKFLOW SKILL** — Create, update, review, fix, or debug VS Code agent customization files (.instructions.md, .prompt.md, .agent.md, SKILL.md…
SkillBFreshness: BClaude Code +9 - 0.529score
atualizar-pacotes-nuget
ColibriAgile
tight NuGet: atualiza dependências .NET com dotnet outdated, valida restore/build/testes, sincroniza submódulos e decide entre corrigir uma incompatibilidade…
SkillBFreshness: BClaude Code +9 - 0.529score
colibri-connection-string
ColibriAgile
Configuração de conexões — Use when a tarefa precisar incluir ou refatorar a obtenção de strings SQL Server ou PostgreSQL por arquivos de configuração do…
SkillBFreshness: BClaude Code +9 - 0.529score
colibri-ports
ColibriAgile
Leitura de portas Colibri: use quando um projeto C# precisar criar ou adaptar código para ler o valor de uma porta usando CoLib.Ambiente e CoLib.Colibri…
SkillBFreshness: BClaude Code +9 - 0.526score
ai-ready-fix
ColibriAgile
AI Ready Fix corrige achados do AI-READY-SCORE.md e reavalia a prontidão do repositório para agentes de IA.
SkillBFreshness: BClaude Code +9 - 0.526score
colibri-logging
ColibriAgile
Logs — Use quando o agente adiciona, refatora ou padroniza o logging de aplicação C# para o padrão Colibri.
SkillBFreshness: BClaude Code +9 - 0.526score
ai-ready-score
ColibriAgile
AI Ready avalia a prontidão de um repositório para agentes de IA com nota de 0 a 5 e achados verificáveis.
SkillBFreshness: BClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Sep 11, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from Pedro Nauck
- 0.768score
bubbletea
Pedro Nauck
Build interactive Go TUIs with Bubbletea, Elm architecture, Lipgloss, layouts, and keyboard/mouse handling.
SkillBFreshness: B★ 641Claude Code +9 - 0.768score
rust-best-practices
Pedro Nauck
Write, review, refactor, or optimize Rust, including ownership, errors, Tokio, traits, tests, benchmarks, Clippy, and documentation.
SkillBFreshness: B★ 641Claude Code +9 - 0.762score
ddd-master
Pedro Nauck
Assess DDD fit; discover domains with EventStorming, define language and bounded contexts, and design aggregates, value objects, events, and repositories.
SkillBFreshness: B★ 641Claude Code +9 - 0.762score
drizzle-safe-migrations
Pedro Nauck
Plan safe Drizzle backfills, enum/check/default changes, constraint tightening, migration ordering, and rollback.
SkillBFreshness: B★ 641Claude Code +9 - 0.762score
glassmorphism
Pedro Nauck
Create or refine glass UI with accessible solid fallbacks.
SkillBFreshness: B★ 641Claude Code +9 - 0.762score
golang-master
Pedro Nauck
Write or review production Go: errors, concurrency, context, types, generics, safety, tests, benchmarks, profiling, modernization, and module structure.
SkillBFreshness: B★ 641Claude Code +9
Cite this page
architectural-analysis skill. Agent Mart. https://agentmart.dev/skills/colibriagile-architectural-analysis (last updated 2026-10-24)