Getting Started with MCAF v1.2
This tutorial is the canonical bootstrap flow for humans and agents.
It is intentionally separate from README.md:
README.mdexplains MCAF conceptsTUTORIAL.mdexplains installation and update steps
There is no shell installer in v1.2.
The install path is URL-first and simple:
- fetch bootstrap templates
- fetch the needed skill folders
- place them in the right target directories
- restart the agent
0. First Prompt to Paste into an AI Agent
Use this prompt first when you want to install or update MCAF in an existing repo:
Install or update MCAF for this repository using the canonical tutorial:
- https://mcaf.managed-code.com/tutorial
Follow the tutorial end-to-end, including template and skill installation steps it references.
Rules:
- install only current skills with prefix mcaf-
- keep AGENTS.md in the repository root
- if this is a multi-project solution, create or update local AGENTS.md files per project
1. Open the Canonical Entry Point
Use the tutorial as the single canonical install surface:
- Tutorial: https://mcaf.managed-code.com/tutorial
Direct links below are optional shortcuts when you need them:
- Templates: https://mcaf.managed-code.com/templates
- Skills: https://mcaf.managed-code.com/skills
Use these raw template files for direct download:
- Root
AGENTS.md: https://raw.githubusercontent.com/managedcode/MCAF/main/docs/templates/AGENTS.md CLAUDE.md: https://raw.githubusercontent.com/managedcode/MCAF/main/docs/templates/CLAUDE.md
2. Bootstrap the Repo Root
Always place AGENTS.md at the repository or solution root.
If you use Claude Code, also place CLAUDE.md at the repository root.
Example:
curl -fsSL https://raw.githubusercontent.com/managedcode/MCAF/main/docs/templates/AGENTS.md -o AGENTS.md
curl -fsSL https://raw.githubusercontent.com/managedcode/MCAF/main/docs/templates/CLAUDE.md -o CLAUDE.md
If you are not using Claude Code, CLAUDE.md is optional.
3. Choose the Agent Skill Directory
Use one of these target directories:
- Codex:
.codex/skills/ - Claude Code:
.claude/skills/
Create the directory if it does not exist:
mkdir -p .codex/skills
mkdir -p .claude/skills
Only create the directory for the agent runtime you actually use.
4. Fetch the Skill Folders
Get the available skills from:
- Skills page: https://mcaf.managed-code.com/skills
For each selected skill:
- Open the skill entry on the Skills page.
- Open the
Raw SKILLlink for that skill. - Fetch
SKILL.mdinto the target skill folder. - Read the skill’s
Load Referencessection and fetch only the referenced files you actually need from the same GitHub folder.
This keeps install deterministic without requiring manifests or archives.
4.0 Recommended .NET Bundle
For a .NET repository, the usual baseline is:
mcaf-dotnetmcaf-dotnet-featuresmcaf-solution-governancemcaf-testing- exactly one of:
mcaf-dotnet-xunitmcaf-dotnet-tunitmcaf-dotnet-mstest
mcaf-dotnet-quality-cimcaf-dotnet-complexitymcaf-solid-maintainabilitymcaf-architecture-overviewmcaf-ci-cd
For .NET repositories, also make these repo-native artifacts explicit:
- a repo-root
.editorconfigas the analyzer and formatting source of truth - project-specific nested
.editorconfigfiles when a subtree has a clear different purpose or policy Directory.Build.propsor project files for bulk analyzer and runner settings- target
TFMand explicitLangVersiononly when the repo intentionally differs from the SDK default - whether the solution uses
VSTestorMicrosoft.Testing.Platform
The intended flow is:
mcaf-dotnetis the entry skill for normal C# or .NET workmcaf-dotnet-featuresdecides which modern language features are safe to use, especially for C# 13 on.NET 9and C# 14 on.NET 10- the framework-specific test skill handles xUnit, TUnit, or MSTest mechanics
- after code changes, agents run the repo-defined quality pass: format, build, analyze, tests, coverage, and any configured extra gates
The baseline above is intentionally small. Add tool-specific .NET skills only when the repo standardizes on them:
mcaf-dotnet-analyzer-configmcaf-dotnet-archunitnetmcaf-dotnet-clocmcaf-dotnet-code-analysismcaf-dotnet-codeqlmcaf-dotnet-coverletmcaf-dotnet-csharpiermcaf-dotnet-formatmcaf-dotnet-meziantou-analyzermcaf-dotnet-netarchtestmcaf-dotnet-profilingmcaf-dotnet-quickdupmcaf-dotnet-reportgeneratormcaf-dotnet-resharper-cltmcaf-dotnet-roslynatormcaf-dotnet-strykermcaf-dotnet-stylecop-analyzers
4.1 Current Skill Catalog (Generated)
The website build generates this list from the actual folders under skills/.
mcaf-adr-writing— Folder, Raw SKILLmcaf-agile-delivery— Folder, Raw SKILLmcaf-architecture-overview— Folder, Raw SKILLmcaf-ci-cd— Folder, Raw SKILLmcaf-code-review— Folder, Raw SKILLmcaf-devex— Folder, Raw SKILLmcaf-documentation— Folder, Raw SKILLmcaf-dotnet— Folder, Raw SKILLmcaf-dotnet-analyzer-config— Folder, Raw SKILLmcaf-dotnet-archunitnet— Folder, Raw SKILLmcaf-dotnet-cloc— Folder, Raw SKILLmcaf-dotnet-code-analysis— Folder, Raw SKILLmcaf-dotnet-codeql— Folder, Raw SKILLmcaf-dotnet-complexity— Folder, Raw SKILLmcaf-dotnet-coverlet— Folder, Raw SKILLmcaf-dotnet-csharpier— Folder, Raw SKILLmcaf-dotnet-features— Folder, Raw SKILLmcaf-dotnet-format— Folder, Raw SKILLmcaf-dotnet-meziantou-analyzer— Folder, Raw SKILLmcaf-dotnet-mstest— Folder, Raw SKILLmcaf-dotnet-netarchtest— Folder, Raw SKILLmcaf-dotnet-profiling— Folder, Raw SKILLmcaf-dotnet-quality-ci— Folder, Raw SKILLmcaf-dotnet-quickdup— Folder, Raw SKILLmcaf-dotnet-reportgenerator— Folder, Raw SKILLmcaf-dotnet-resharper-clt— Folder, Raw SKILLmcaf-dotnet-roslynator— Folder, Raw SKILLmcaf-dotnet-stryker— Folder, Raw SKILLmcaf-dotnet-stylecop-analyzers— Folder, Raw SKILLmcaf-dotnet-tunit— Folder, Raw SKILLmcaf-dotnet-xunit— Folder, Raw SKILLmcaf-feature-spec— Folder, Raw SKILLmcaf-human-review-planning— Folder, Raw SKILLmcaf-ml-ai-delivery— Folder, Raw SKILLmcaf-nfr— Folder, Raw SKILLmcaf-observability— Folder, Raw SKILLmcaf-security-baseline— Folder, Raw SKILLmcaf-solid-maintainability— Folder, Raw SKILLmcaf-solution-governance— Folder, Raw SKILLmcaf-source-control— Folder, Raw SKILLmcaf-testing— Folder, Raw SKILLmcaf-ui-ux— Folder, Raw SKILL
5. Multi-Project Solutions
For multi-project solutions:
- keep one root
AGENTS.mdat the solution root - add one local
AGENTS.mdat each project or module root
Do not create local files ad hoc.
Use the mcaf-solution-governance skill to define:
- project purpose
- entry points
- boundaries
- project-local commands
- applicable skills
- stricter local maintainability limits, if needed
Project-local AGENTS.md files refine root rules.
They do not silently weaken root policy.
6. Maintainability Limits Live in AGENTS.md
Numeric limits are repo policy, not framework constants.
Put them in root AGENTS.md under Maintainability Limits:
file_max_loctype_max_locfunction_max_locmax_nesting_depthexception_policy
Project-local AGENTS.md files may tighten these limits for a specific area.
Use the mcaf-solid-maintainability skill for:
- SOLID and SRP guidance
- split/refactor workflow
- documenting justified exceptions
7. Where the Authoring Scaffolds Live
v1.2 keeps public templates minimal.
Public templates:
AGENTS.mdCLAUDE.md
Authoring scaffolds are now loaded through skills:
- architecture overview scaffold:
mcaf-architecture-overview - feature spec scaffold:
mcaf-feature-spec - ADR scaffold:
mcaf-adr-writing - project-local
AGENTS.mdscaffold:mcaf-solution-governance
This keeps public pages small and lets agents fetch only the guidance they need.
8. Restart the Agent
After placing the skill folders in the target directory, restart the agent runtime so it reloads the installed skills.
The bootstrap is complete when:
- root
AGENTS.mdexists - the right skill folders exist in the chosen skills directory
- local
AGENTS.mdfiles exist for project roots in a multi-project solution - docs and commands are customized to the real repo
9. Suggested First Prompt After Install
Use a prompt like this:
Analyze this solution and customize the root AGENTS.md.
If this is a multi-project solution, create project-local AGENTS.md files in each project root.
Then identify which MCAF skills apply to each project and document them in the local AGENTS files.
Finally, update docs/Architecture/Overview.md so agents can scope work without repo-wide scanning.