crm-archaeology
Study a live Dynamics 365 / Dataverse environment end-to-end and produce one ARCHITECTURE.md — pull every customization to disk (solutions, entities, forms…
Skill by ThodsaphonSonthiphin
Chalk Labs
Need help deploying crm-archaeology?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
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/thodsaphonsonthiphin-crm-archaeology
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, design, frontend, 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/crm-archaeology
What's inside
- Skill name
crm-archaeology- Description
- Study a live Dynamics 365 / Dataverse environment end-to-end and produce one ARCHITECTURE.md — pull every customization to disk (solutions, entities, forms, JS and React web resources, PCF controls, classic workflows, plugins, cloud flows, classic RibbonDiffXml AND modern commands, security roles, embedded Power BI), map every business entity (standard AND custom), then trace the business processes layer by layer. Use whenever the user wants to learn, study, understand, reverse-engineer, audit, or document an existing Dynamics 365 / CRM / Dataverse org or model-driven app — "how does this CRM work", "document my D365 org", "learn the business logic of this environment", "what does this solution actually do", onboarding to a customer's CRM, or scoping a migration/rebuild. Read-only by design — it never writes to the org. NOT for building or changing CRM components (use the dataverse plugin skills) or for studying a plain source-code repo (use drive-to-legacy).
- License
- MIT
- Instructions
- 152 lines in SKILL.md · view on GitHub
Files (4)
- SKILL.md
- architecture-template.md · references/
- diagram-convention.md · references/
- extraction-queries.md · references/
SKILL.md (first lines)
# CRM Archaeology — study a live Dynamics 365 org, end to end A live CRM org is unreadable in the browser, but almost everything in it can be pulled to disk as plain text. So the method is three stages: ``` EXTRACT (steps 1–7: org → files + fragments) → STUDY (steps 8–9: connect the layers into business processes) → DOCUMENT (step 10: one ARCHITECTURE.md) ``` Every command and query this skill relies on is in this skill's `references/extraction-queries.md` (verified against Microsoft Learn, June 2026). Read the relevant section of that file when you reach each step — do not improvise queries from memory; Dataverse metadata endpoints have non-obvious casing, casting, and join-key rules that the reference encodes. ## Hard rules 1. **Read-only.** This skill exports, GETs, and reads. It never creates, updates, or deletes anything in the org via the API, a script, or `pac`. The single sanctioned exception is the step-9 lifecycle walk-through, where a test record may be created **through the app UI** — by the user, or by you only with their explicit consent, and only in a sandbox. If the study reveals something worth fixing, file it as a finding — do not fix it inline. 2. **Confirm the environment before the first call.** Show the user the environment URL and ask them to confirm (`pac org who` to verify). Prefer a SANDBOX. Never assume the active `pac` auth profile is the right target. 3. **Fragments, not one giant pass.** Each step writes its output into the study workspace as it finishes. The study must be resumable — stopping after step 4 today and continuing tomorrow is a normal way to run it. 4. **No speculation in the output.** Document only what the extracted files and queries show. Unclear behavior is recorded as unclear. ## Step 0 — Scope gate (always first) Ask the user (one message, not an interview): 1. **Environment** — which org URL? Confirm it; prefer sandbox. 2. **Depth** — **quick pass** (steps 1–4 + a reduced doc: entity map + automation inventory — enough to understand the business shape, ~hours) or **full study** (all steps, may span days)? 3. **Workspace** — where to put the study folder (default: `./crm-study/`). Then verify tooling: `pac` installed and authenticated (`pac org who`). If the `dataverse` plugin is installed, its `dv-connect` skill owns setup/auth — hand off to it rather than improvising. Web API calls need a bearer token; reuse the project's existing auth helper if one exists. Create the workspace and `git init` it: ``` crm-study/ src/ # unpacked solution(s) — the extracted "codebase" src-yaml/ # pac solution clone output (only if cloud flows / Power Fx commands exist) fragments/ # one file per step: 02-entities.md, 04-automation.md, ... ARCHITECTURE.md # assembled at the end ``` Git matters beyond hygiene: re-running step 1 later and reading `git diff` is the cheap "what changed in the org since the last study?" drift check. ## Steps 1–7 — Extract Work through these in order the first time; after step 1 lands, steps 2–7 are independent of each other and can run as parallel subagents (give each its reference section and the workspace path; each writes only its own fragment). | Step | What it captures | Fragment | |---|---|---| | 1. Solution export | Everything to disk: web resources, PCF controls, FormXml, RibbonDiffXml, workflows-as-XAML, plugin DLLs. YAML clone too if cloud flows / Power Fx commands exist. **Checkpoint: show the user what landed before going deeper.** | `01-inventory.md` | | 2. Entity universe | Every table the business uses — union of four sources: app components, sitemap (also keep the Area/Group names: they are the business taxonomy and the doc's chapter list), standard tables with custom columns, record counts/usage. Then expand outward via lookups to catch child entities never shown in navigation. | `02-entities.md` | | 3. Data model | ERD edges, data dictionary, every option-set value with label — the labels ARE the business vocabulary. | `03-data-model.md` | | 4. Server automation | `workflow` table by category (classic / business rule / action / BPF / cloud flow) + plugin steps + webhooks. Every item: trigger → behavior → **why the business needs it**. | `04-automation.md` | | 5. Client-side logic | Form → event → `library.function` map from FormXml; web resource inventory; PCF vs HTML-hosted React; minified-bundle grep for the tables each React app touches. | `05-client-side.md` | | 6. Command bar | BOTH generations: classic RibbonDiffXml (including the easy-to-miss Application Ribbons component) and modern `appaction` commands (Power Fx lives in the command component library `.msapp`, not in the row). | `06-commands.md` | | 7. Security | Roles (≈ personas), BU tree, field security, which roles can use which app. | `07-security.md` | For each step, the exact commands, queries, parsing targets, and the gotchas that silently produce wrong results (join keys, label languages, type casts, 24-hour-stale counts) are in the matching section of `extraction-queries.md`. **Conditional step 7b — embedded Power BI.** Detect deterministically, not by clicking around: dashboards are `systemform` rows with `type eq 0` — scan their `formxml` for Power BI markers (see the reference's step 7b). When found, the analytics logic lives in a Power BI semantic model outside the solution export: record which reports are embedded and which Dataverse tables feed them into `fragments/07b-analytics.md`; if the `pbi-cli` skills are available, `power-bi-docs` can document the model itself. ## Steps 8–9 — Study (this is the actual learning) **8. Verify the static maps against the running app.** The extracted files say what is *registered*; the app says what *runs*. Two built-in tools close the gap: **Monitor → FormEvents** (catches JS handlers registered dynamically in code, which FormXml never shows) and **Command Checker** (`&ribbondebug=true` on the app URL — the authority on the merged classic+modern command bar). Reconcile differences into the fragments. **9. Trace business processes end to end.** For each key entity (start from the sitemap's main work areas, not the master-data ones), connect the layers into a lifecycle: > who creates it (role, step 7) → which form + JS validates and cascades > (step 5) → which buttons act on it (step 6) → which automation fires on save > (step 4) → which status transitions exist (statuscode labels, step 3) → what > downstream records appear. Walk the app to confirm each lifecycle — a test record makes the cascades and automations visible (watch what auto-populates, check audit history). Per hard rule 1, the test record is created **through the app UI**, by the user or by you only with their explicit consent, and only in a sandbox — never via the API or `pac`. Write each lifecycle as a user story with a mermaid `sequenceDiagram` into `fragments/09-processes.md`. This step is sequential by nature — it needs all the fragments. ## Step 10 — Assemble the document Build `ARCHITECTURE.md` from the fragments following this skill's `references/architecture-template.md`.
From ThodsaphonSonthiphin/workflow-daily-work, MIT.
More from ThodsaphonSonthiphin/workflow-daily-work
- 0.529score
fit-gap-analysis
ThodsaphonSonthiphin
Compare a target (spec, product vision, competitor, RFP, or "to-be" design) against a system as actually built, and produce an evidence-first fit-gap — a…
SkillBFreshness: BClaude Code +9 - 0.529score
extract-findings
ThodsaphonSonthiphin
Normalize ANY input into findings.json — the first step toward turning review notes into an Azure DevOps backlog.
SkillBFreshness: BClaude Code +9 - 0.529score
feynman-explain
ThodsaphonSonthiphin
Fixed-format explanation discipline for concepts, systems, and code.
SkillBFreshness: BClaude Code +9 - 0.529score
ado-auth
ThodsaphonSonthiphin
Authenticate to Azure DevOps and fix auth problems — the shared primitive every other ado-* skill relies on.
SkillBFreshness: BClaude Code +9 - 0.529score
ado-create-work-items
ThodsaphonSonthiphin
Create Azure DevOps work items from a backlog_input.json (the output of classify-work-items) via the bundled create-backlog.cs script.
SkillBFreshness: BClaude Code +9 - 0.529score
ado-writeback-tracking
ThodsaphonSonthiphin
Add traceability columns to a spreadsheet source and write created Azure DevOps ticket IDs/URLs back into it, matched row-by-row by key.
SkillBFreshness: BClaude Code +9 - 0.529score
findings-to-ado-backlog
ThodsaphonSonthiphin
End-to-end orchestrator that turns findings from ANY input (audit spreadsheet, code/security review, QA report, meeting notes, a pasted list of issues) into…
SkillBFreshness: BClaude Code +9 - 0.529score
findings-to-github-issues
ThodsaphonSonthiphin
End-to-end orchestrator that turns findings from ANY input (audit spreadsheet, code/security review, QA report, meeting notes, a pasted list of issues) into a…
SkillBFreshness: BClaude Code +9 - 0.529score
document-what-shipped
ThodsaphonSonthiphin
Write and publish ONE documentation page about something that already ships - a user manual, a process and flow page, a release note, a runbook, or a rules…
SkillBFreshness: BClaude Code +9 - 0.529score
chart-map
ThodsaphonSonthiphin
Chart a Decision map for an effort too big for one agent session — name the destination, grill breadth-first to separate real decision tickets from fog…
SkillBFreshness: BClaude Code +9 - 0.529score
classify-github-issues
ThodsaphonSonthiphin
Map triaged findings to GitHub Issues with the correct labels, milestone, and body, and emit github_backlog_input.json ready for creation.
SkillBFreshness: BClaude Code +9 - 0.529score
classify-work-items
ThodsaphonSonthiphin
Map triaged findings to the correct Azure DevOps work item types for the TARGET project's process, and emit backlog_input.json ready for creation.
SkillBFreshness: BClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 6
- Last commit (this folder)
- Sep 5, 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 ThodsaphonSonthiphin
- 0.529score
extract-findings
ThodsaphonSonthiphin
Normalize ANY input into findings.json — the first step toward turning review notes into an Azure DevOps backlog.
SkillBFreshness: BClaude Code +9 - 0.529score
feynman-explain
ThodsaphonSonthiphin
Fixed-format explanation discipline for concepts, systems, and code.
SkillBFreshness: BClaude Code +9 - 0.529score
ado-auth
ThodsaphonSonthiphin
Authenticate to Azure DevOps and fix auth problems — the shared primitive every other ado-* skill relies on.
SkillBFreshness: BClaude Code +9 - 0.529score
ado-create-work-items
ThodsaphonSonthiphin
Create Azure DevOps work items from a backlog_input.json (the output of classify-work-items) via the bundled create-backlog.cs script.
SkillBFreshness: BClaude Code +9 - 0.529score
ado-writeback-tracking
ThodsaphonSonthiphin
Add traceability columns to a spreadsheet source and write created Azure DevOps ticket IDs/URLs back into it, matched row-by-row by key.
SkillBFreshness: BClaude Code +9 - 0.529score
document-what-shipped
ThodsaphonSonthiphin
Write and publish ONE documentation page about something that already ships - a user manual, a process and flow page, a release note, a runbook, or a rules…
SkillBFreshness: BClaude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get crm-archaeology running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
crm-archaeology skill. Agent Mart. https://agentmart.dev/skills/thodsaphonsonthiphin-crm-archaeology (last updated 2026-10-24)