Skip to content
Development
Skill

/al-spec-create

Create or revise the canonical AL technical specification through AL Spec Agent, preserving approved architecture and human approval. ALDC workflow (Copilot prompt al-spec.create); invoke explicitly.

BOOST
From plugin
aldc-al-development-collection
11237 skills28 agents11 commands4 MCP
Install
$ npx -y skills add javiarmesto/ALDC-AL-Development-Collection --skill al-spec-create --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/al-spec-create

Context preview

The summary Claude sees to decide when to auto-load this skill.

Create or revise the canonical AL technical specification through AL Spec Agent, preserving approved architecture and human approval. ALDC workflow (Copilot prompt al-spec.create); invoke explicitly.

SKILL.md

al-spec-create.SKILL.md
name: al-spec-create
description: "Create or revise the canonical AL technical specification through AL Spec Agent, preserving approved architecture and human approval. ALDC workflow (Copilot prompt al-spec.create); invoke explicitly."
disable-model-invocation: true

> **Claude Code adapter — generated by `scripts/sync-plugin-support.js`, do not edit.** > Canonical source: `prompts/al-spec.create.prompt.md` (sha256 `7cc5c35aa91ee34704ef684f4b840071059242c2db3f8263acdba6b7f6d1ee2c`). > This workflow was written for `@workspace use …` in GitHub Copilot Chat. > Apply these harness mappings and treat everything else as binding: > > | Copilot surface in the contract | Claude Code equivalent | > | --- | --- | > | `#runSubagent` / `runSubagent` / `agents:` | The `Task` tool with `subagent_type: "aldc:<agent>"`; one invocation carries everything inline (subagents are stateless) | > | `#askQuestions` / `vscode/askQuestions` | `AskUserQuestion` (main session only; a subagent returns its questions in its structured output) | > | `handoffs:` entries, and `send: false` on one | **No equivalent — the gate is yours to keep.** In Copilot a handoff is a button the human clicks, and `send: false` additionally hands them the prompt to review before it is sent; the host supplies the approval. Claude Code delegates through the `Task` tool, with no click and no review step. So never auto-delegate: present your output, get explicit approval, and only then delegate or route to another role. The handoff's routing is carried by the plugin's role entry skills; its human gate is carried by this rule | > | `@al-architect`, `@al-spec-agent`, `@al-conductor`, `@al-developer`, `@al-developer-reviewer`, `@al-triage`, `@al-presales`, `@al-agent-builder`, `@dredd` | `/aldc:architect`, `/aldc:spec`, `/aldc:conduct`, `/aldc:develop`, `/aldc:review`, `/aldc:triage`, `/aldc:presales`, `/aldc:agent-builder`, `/aldc:audit` (or `claude --agent aldc:<agent>`) | > | `@workspace use <workflow>` | `/aldc:<workflow>` with dots replaced by dashes (`al-spec.create` -> `/aldc:al-spec-create`); already rewritten below | > | `${input:Name}` prompt variables | Take the value from `$ARGUMENTS`; ask through `AskUserQuestion` when missing. Already rewritten below as `<Name from $ARGUMENTS>` | > | `execute` / `runInTerminal`, AL compilation or symbol restore | Developer/Implementer: discovered official AL MCP `mcp__al__al_compile` / `mcp__al__al_build` / `mcp__al__al_downloadsymbols`, or an installed ALTool/AL-Go runner through `Bash`. Use the correct App/Test project; unavailable capabilities are never simulated. Publishing retains its separate human/CI gate and is not granted by this adapter | > | `edit`, `read/readFile`, `search`, `#codebase` | `Edit`/`Write`, `Read`, `Grep`/`Glob` | > | `#changes`, `changes`, `search/changes` | Read-only `git status` / `git diff` through `Bash` only where granted; otherwise read the caller-supplied diff artifact or return the missing evidence request | > | `read/problems`, `al_get_diagnostics`, `#testFailure` | Discovered `mcp__al__al_getdiagnostics` for the explicit project, or actual compiler/test output. Diagnostics are not evidence of a fresh compile or executed tests. No result: record `not-run` / `unavailable` | > | `al-symbols-mcp/*`, `upstash/context7/*`, `microsoft-learn/*`, `microsoft-docs/*` | Tools named `mcp__al-symbols-mcp__*`, `mcp__context7__*`, `mcp__microsoft-docs__*` (or the `mcp__plugin_aldc_…` form). A server that is not loaded is `unavailable`; do not simulate it | > | `sshadowsdk.al-lsp-for-agents/*`, `#usages`, semantic definition/reference queries | Claude `LSP` with the existing AL LSP for Agents companion; discover the actual operations and project context first. VS Code tool identifiers are not Claude tool names | > | `ms-dynamics-smb.al/*`, `vscode.mermaid-chat-features/*` | VS Code tool identifiers do not exist here. Use only a separately discovered Claude capability; never rename community tools as Microsoft tools | > | `vscode/memory`, `vscode/*` | Not available; keep state in the canonical `.claude/plans/` artifacts of the project | > | `todo` | `TodoWrite` for in-session tracking; durable state stays in `.claude/plans/` | > | "load `skill-x`" | The `Skill` tool (`aldc:<skill-name>`) or read `${CLAUDE_PROJECT_DIR}/.claude/skills/<skill-name>/SKILL.md` | > | `.github/instructions/*.instructions.md` (`applyTo`) | `${CLAUDE_PROJECT_DIR}/.claude/rules/*.md` (`paths:`); `/aldc:al-initialize` copies them to the project's `.claude/rules/` for auto-apply in the main session; inject inline for subagents exactly as the contract says | > | `.github/skills/`, `.github/plans/…`, `docs/templates/` | `${CLAUDE_PROJECT_DIR}/.claude/skills/`, `.claude/plans/…` (project-owned, `aldc.yaml -> plans.root`), `${CLAUDE_PROJECT_DIR}/claude-plugin/docs/templates/`; already rewritten below | > | `python …` runtime helpers, `--aldc-root` | Paths already point at `${CLAUDE_PLUGIN_ROOT}`; use `python` or `python3`, whichever exists (stdlib only) | > | `aldc.yaml` | `${CLAUDE_PROJECT_DIR}/aldc.yaml` when the project has one, otherwise `${CLAUDE_PROJECT_DIR}/claude-plugin/aldc.yaml` | > > Read `${CLAUDE_PROJECT_DIR}/claude-plugin/docs/claude-al-tooling.md` for this surface’s LSP/MCP bindings, then `${CLAUDE_PROJECT_DIR}/.claude/skills/skill-migrate/references/cli-al-tools.md` for the shared role/evidence contract. The Claude guide supersedes older capability-availability examples, never role responsibilities or human gates.

AL specification entrypoint

Use `al-spec-agent` with the requirement, complexity and scope in `$ARGUMENTS`. Read and follow [the canonical specification contract](${CLAUDE_PROJECT_DIR}/claude-plugin/agents/al-spec-agent.md) in full before authoring. This entrypoint does not define another specification workflow. Resolve the role link from this installed prompt's directory.

Pass the approved requirement/architecture, current spec path if revising, and any Architect-assign

Read more
Ships withaldc-al-development-collection

Skills-based, spec-driven, TDD-orchestrated development framework for Microsoft Dynamics 365 Business Central. Engineering systems, visibly reasoned.

Get the whole plugin