<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/intent-driven-development-with-cortex-code-desktop-u57ivmirl" -->

---
title: Intent-Driven Development with Cortex Code Desktop
description: A team adopted Cortex Code Desktop (CoCo) with a spec-driven skill to build Snowflake data assets using an intent-driven, agent-assisted workflow. Instead of...
canonical: https://daily.dev/posts/intent-driven-development-with-cortex-code-desktop-u57ivmirl
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Intent-Driven Development with Cortex Code Desktop | daily.dev
og:description: A team adopted Cortex Code Desktop (CoCo) with a spec-driven skill to build Snowflake data assets using an intent-driven, agent-assisted workflow. Instead of...
og:url: https://daily.dev/posts/intent-driven-development-with-cortex-code-desktop-u57ivmirl
og:image: https://api.daily.dev/og/posts/u57ivMIrL.png
og:image:alt: Intent-Driven Development with Cortex Code Desktop
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Intent-Driven Development with Cortex Code Desktop

**[Snowflake Community](https://daily.dev/sources/snowflake_comm)** · 10 min read · 0 upvotes · 0 comments

## Summary

A team adopted Cortex Code Desktop (CoCo) with a spec-driven skill to build Snowflake data assets using an intent-driven, agent-assisted workflow. Instead of writing code directly, engineers state an intent, which the agent converts into formal EARS-notation requirements before any code is written. The process enforces mandatory human approval gates after each of five phases: clarify, specify, design, implement, and validate. A real-world walkthrough demonstrates building a data health check stored procedure for a shared Snowflake schema, showing how fuzzy requirements get resolved upfront, edge cases are handled systematically, and every line of generated SQL traces back to a numbered requirement. The result is junior engineers producing senior-quality output and senior engineers shifting from writing to reviewing.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://medium.com/snowflake/intent-driven-development-with-cortex-code-desktop-6ce36fe196e3>

## Questions this post answers

### What is EARS notation and how is it used in AI-assisted spec-driven development?

EARS (Easy Approach to Requirements Syntax) is a disciplined way of writing requirements as 'when X happens, the system shall do Y' statements. In a spec-driven workflow with Cortex Code Desktop, requirements are tagged as either Ubiquitous (always true, no trigger) or Event-Driven (fires on a condition), each expanded with acceptance criteria before any code is written.

_Developers formalizing requirements before coding can find spec-driven workflow breakdowns like this on daily.dev._

### How does Cortex Code's spec-driven skill enforce human approval during an agentic development workflow?

It stops execution after every phase (Clarify, Specify, Design, Implement, Validate) and waits for an explicit human approval before continuing, with no prompt able to skip that gate. This keeps engineers in control of decisions while the agent handles analysis, drafting, and implementation, and keeps requirements.md and design.md synced whenever a design decision implies a requirement change.

_Teams evaluating AI coding agents with guardrails can track workflow patterns like this on daily.dev._

### How do you write a stored procedure in Snowflake to detect duplicate primary keys across all tables in a schema?

One approach uses a caller's-rights stored procedure that discovers every table in the schema, pulls primary key columns via SHOW PRIMARY KEYS in a single schema-level call cached in a temp table, then loops through tables running a dynamic GROUP BY / HAVING COUNT(*) > 1 query to catch duplicates, writing PASS, FAIL, or SKIP results with JSON details into an append-only results table. Tables without a primary key, permission errors, and empty tables are handled via exception blocks rather than failing.

_Engineers building Snowflake data quality checks can find implementation details like this on daily.dev._

## Similar posts on daily.dev

- [I Built an AI Complaints Triage App with Snowflake Cortex Code in a Single Session](https://daily.dev/posts/i-built-an-ai-complaints-triage-app-with-snowflake-cortex-code-in-a-single-session-xcyh9gpio) · Snowflake Community · 0 upvotes · 0 comments
- [Snowflake debuts Cortex Code, an AI agent that understands enterprise data context](https://daily.dev/posts/snowflake-debuts-cortex-code-an-ai-agent-that-understands-enterprise-data-context-yqpwobe0d) · InfoWorld · 0 upvotes · 0 comments
- [Snowflake CoCo and CoWork: Governed Context for Agentic AI](https://daily.dev/posts/snowflake-coco-and-cowork-governed-context-for-agentic-ai-uapc0ap69) · Decube · 0 upvotes · 0 comments
- [dbt Projects on Snowflake: Build & Deploy with Cortex Code](https://daily.dev/posts/dbt-projects-on-snowflake-build-deploy-with-cortex-code-lv79c0hf0) · Snowflake · 0 upvotes · 0 comments

---

Tags: [#data-engineering](https://daily.dev/tags/data-engineering), [#snowflake](https://daily.dev/tags/snowflake), [#spec-driven-development](https://daily.dev/tags/spec-driven-development)

[View this post on daily.dev](https://daily.dev/posts/intent-driven-development-with-cortex-code-desktop-u57ivmirl)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Intent-Driven Development with Cortex Code Desktop","url":"https://daily.dev/posts/intent-driven-development-with-cortex-code-desktop-u57ivmirl","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/intent-driven-development-with-cortex-code-desktop-u57ivmirl"},"datePublished":"2026-07-30T19:04:57.652Z","dateModified":"2026-09-13T21:56:42.426Z","description":"A team adopted Cortex Code Desktop (CoCo) with a spec-driven skill to build Snowflake data assets using an intent-driven, agent-assisted workflow. Instead of...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/18e23e63ace2afe64cffaa030c5b0d42?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/18e23e63ace2afe64cffaa030c5b0d42?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Snowflake Community","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Snowflake Community","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/3eb5260f70bb4653be0f9581c0d937c8","url":"https://daily.dev/sources/snowflake_comm"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/intent-driven-development-with-cortex-code-desktop-u57ivmirl","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"data-engineering,snowflake,spec-driven-development","timeRequired":"PT10M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Snowflake Community","item":"https://daily.dev/sources/snowflake_comm"},{"@type":"ListItem","position":3,"name":"Intent-Driven Development with Cortex Code Desktop"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/intent-driven-development-with-cortex-code-desktop-u57ivmirl#faq","mainEntity":[{"@type":"Question","name":"What is EARS notation and how is it used in AI-assisted spec-driven development?","acceptedAnswer":{"@type":"Answer","text":"EARS (Easy Approach to Requirements Syntax) is a disciplined way of writing requirements as 'when X happens, the system shall do Y' statements. In a spec-driven workflow with Cortex Code Desktop, requirements are tagged as either Ubiquitous (always true, no trigger) or Event-Driven (fires on a condition), each expanded with acceptance criteria before any code is written. Developers formalizing requirements before coding can find spec-driven workflow breakdowns like this on daily.dev."}},{"@type":"Question","name":"How does Cortex Code's spec-driven skill enforce human approval during an agentic development workflow?","acceptedAnswer":{"@type":"Answer","text":"It stops execution after every phase (Clarify, Specify, Design, Implement, Validate) and waits for an explicit human approval before continuing, with no prompt able to skip that gate. This keeps engineers in control of decisions while the agent handles analysis, drafting, and implementation, and keeps requirements.md and design.md synced whenever a design decision implies a requirement change. Teams evaluating AI coding agents with guardrails can track workflow patterns like this on daily.dev."}},{"@type":"Question","name":"How do you write a stored procedure in Snowflake to detect duplicate primary keys across all tables in a schema?","acceptedAnswer":{"@type":"Answer","text":"One approach uses a caller's-rights stored procedure that discovers every table in the schema, pulls primary key columns via SHOW PRIMARY KEYS in a single schema-level call cached in a temp table, then loops through tables running a dynamic GROUP BY / HAVING COUNT(*) > 1 query to catch duplicates, writing PASS, FAIL, or SKIP results with JSON details into an append-only results table. Tables without a primary key, permission errors, and empty tables are handled via exception blocks rather than failing. Engineers building Snowflake data quality checks can find implementation details like this on daily.dev."}}]}
```

