The scaffold skill is built on Intent-Driven Development (IDD), a design practice where prompts state the desired outcome rather than the procedural steps.
Every skill prompt uses four sections:
[Goal] — the desired state / outcome
[Requirements] — intent statements, not steps
[Constraints] — scope, safety rules, what not to do
[Output] — what success looks like (Glass Box reporting)
This structure gives the LLM execution agent the why and the what, not the how. The agent figures out the how — and proves it worked via the Output section.
=== "Step-by-step (fragile)"
```text
1. Run gh repo create
2. Disable Actions
3. Clone the repo
4. Set secrets
...
```
Breaks on any environment difference. No way to verify the outcome.
=== "IDD (intent-driven)"
```text
[Goal]
A new GitHub repo exists, Snowflake OIDC is configured,
secrets are set, CI is ready to run on first push.
[Constraints]
- Do not enable Actions before secrets are configured
- All Snowflake objects must follow naming convention PREFIX_GH_REPO_COCO_AGENT_*
...
[Output]
- repo_url: https://github.com/...
- snowflake_user: DEMO_GH_NIMBLE_BROKER_COCO_AGENT_USER
- "Setup complete."
```
The agent finds the path that achieves the goal within the constraints.
The Output section makes the result verifiable.
A vague prompt produces vague results. IDD forces the prompt author to define:
- The exact end state (Goal)
- The non-negotiable rules (Constraints)
- What proof of completion looks like (Output)
This is why CoCo's scaffold has an ICR of 48: one instruction compresses 48 operations because the intent is precisely stated. See ICR.
!!! note "External content" The blog series below is community content by Kamesh Sampath (Snowflake Developer Advocate). Links point to an external site not controlled by Snowflake.
Kamesh Sampath's IDD series (the intellectual foundation of this skill):