skills/start-task/SKILL.md
<agentic_guild_skill> <skill_definition> <name>start-task</name> <description>Initiates the process of building a new feature, bugfix, refactor, or chore. Enforces strict QA discovery, implementation planning, and TDD.</description> </skill_definition> <state_machine_directives> 1. NEVER execute more than ONE <step> per response. 2. When you see [PAUSE], you MUST completely stop generating text and wait for the user to reply. 3. Always end your response by summarizing
npx skillsauth add jdugarte/agentcore skills/start-taskInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
<agentic_guild_skill> <skill_definition> <name>start-task</name> <description>Initiates the process of building a new feature, bugfix, refactor, or chore. Enforces strict QA discovery, implementation planning, and TDD.</description> </skill_definition>
<state_machine_directives>
1. NEVER execute more than ONE <step> per response.
2. When you see [PAUSE], you MUST completely stop generating text and wait for the user to reply.
3. Always end your response by summarizing our progress in a conversational manner and gently inviting the user to proceed.
4. CYCLIC EXECUTION: You are permitted to loop backward (e.g. return to Step 3.1 from 3.3) when the workflow dictates it for TDD iteration.
5. TDD STRICTNESS: If the user prompts you to write implementation code before a failing test has been confirmed, politely remind them of our strict TDD routine (write failing test first, then make it pass) and ask if they want to proceed with TDD or skip it for now.
6. ANTI-CONVERSATIONAL PLANNING: You are strictly FORBIDDEN from generating an implementation plan purely in chat text. You MUST write the <implementation_plan> directly to the .agenticguild/active_sessions/task_[name].md file on disk.
7. ALWAYS use view_file to read .agenticguild/current_state.md to confirm the active session before generating code.
</state_machine_directives>
<hard_constraints>
NEVER use any tool to execute git commit, git push, or git merge. These commands are STRICTLY FORBIDDEN.
When a commit is appropriate, output a suggested message as a plain-text code block only. The user runs all git commands themselves.
</hard_constraints>
<pre_flight>
<directive>Before executing the workflow, verify the necessary context exists.</directive>
<check>Verify docs/core/SYSTEM_ARCHITECTURE.md and docs/core/SPEC.md exist.</check>
<action>If they are missing, pause our work and gently let the user know we need these files to start. Offer to initialize the project templates for them. If the user says yes, run sync.sh (or equivalent) if available; otherwise create minimal placeholders from EXPECTED_PROJECT_STRUCTURE. Do NOT hallucinate contents without user confirmation.</action>
<update_check>Silently fetch the upstream version from https://raw.githubusercontent.com/jdugarte/agentic-guild/main/package.json (using tools like read_url_content or curl). Compare its version field to the local .agenticguild/source_package.json (if it exists). If the upstream version is higher, or if the local version file is missing, add a visible note to your first output: 🌟 A new version of agentic:guild is available! You can trigger the update-agentic-guild skill to get the latest features and fixes. (Do NOT block the task execution, just show the message).</update_check>
</pre_flight>
<phase id="1" name="Context Initialization">
<step id="1.1">
<action>
First, determine if the user's message already contains a task description (e.g. "start task add export" or "build the dashboard feature").
- If the user provided a description: Use the `view_file` tool to read `docs/ROADMAP.md` if it exists. Try to infer which pending roadmap item matches. If a match is found: Check conversationally if they meant this specific item, or if it's a new task. [PAUSE]. On user reply, [AUTO-TRANSITION TO 1.3]. If no match: Treat as new task and [AUTO-TRANSITION TO 1.3].
- If the user did NOT provide a description: If `docs/ROADMAP.md` exists, helpfully list pending items and ask what they want to tackle today. [PAUSE]. If ROADMAP does not exist: Ask for a brief description of what they'd like to achieve. [PAUSE].
</action>
<yield>
If no roadmap match (description path): [AUTO-TRANSITION TO 1.3].
If you asked a question: [PAUSE] — user's response is handled in step 1.3 or 1.2.
</yield>
</step>
<step id="1.2">
<action>
Parse the user's reply. If they picked an item from the roadmap: Set that as the task, write `<roadmap_item>` to the session metadata, infer classification (Feature/Bugfix/Refactor/Chore), and [AUTO-TRANSITION TO 2.1]. If they described something: Try to infer which pending roadmap item matches (if any). If a match is found: Check with the user to see if they are referring to [item] from the roadmap, or if they want to work on something completely new. [PAUSE]. On user reply, [AUTO-TRANSITION TO 1.3]. If no match: Treat as new task and [AUTO-TRANSITION TO 1.3].
</action>
<yield>[PAUSE - AWAIT CONFIRMATION OF INFERENCE, OR AUTO-TRANSITION]</yield>
</step>
<step id="1.3">
<action>
If user confirmed inference: Use that roadmap item, set `<roadmap_item>`, infer classification, and [AUTO-TRANSITION TO 2.1]. If the user rejected the inference, or if it is a specifically new task: The task description is already known. Ask the user how we should classify this task (Feature, Bugfix, Refactor, or Chore) so we can plan the implementation properly.
</action>
<yield>[PAUSE - AWAIT USER CLASSIFICATION]</yield>
</step>
</phase>
<phase id="2" name="Memory Update & Planning">
<step id="2.1">
<action>
First, check if `.agenticguild/current_state.md` points to an active session file (e.g., passed over from `explore-task`).
- If it points to an active session file: Verify the file actually exists before reading it using the `view_file` tool. If the file exists and already contains a populated `<implementation_plan>` block, acknowledge the spec is locked and [AUTO-TRANSITION TO 3.0]. If it exists but the plan is empty/missing, proceed with the drafting steps below.
- If no active session is pointed to, or the file is missing: Derive `[name]` as a short, kebab-case slug from the task description and silently create a new session file in `.agenticguild/active_sessions/` named `task_[name].md` using the `write_to_file` tool. If the task came from the roadmap, include `<roadmap_item>` in the session metadata. Silently update `.agenticguild/current_state.md`: set `<active_task_pointer>` to the session filename (e.g. `task_[name].md`) so the active task is unambiguous across IDEs. Write the task classification and description into the session file.
Drafting the plan (only if no plan exists yet): You MUST use the `replace_file_content` tool to draft the step-by-step implementation plan directly inside the `<implementation_plan>` block of the `task_[name].md` file ON DISK. Use `<step id="N" status="pending">[Description]</step>` format.
VERIFICATION LOCK: Before asking for user approval, you MUST verify the file `task_[name].md` was successfully updated on the filesystem. Before responding to the user, you MUST explicitly state in your response that the file was successfully updated on disk. Do not present the plan if the file does not exist.
- If Bugfix: Step 1 MUST be "Write a failing test that reproduces the bug."
- If Refactor: Step 1 MUST be "Run existing tests to establish a green baseline."
- If Feature: You MUST define Pre-conditions and Post-conditions for any new core functions. Each step in the plan must explicitly mandate writing a test before implementation.
Present the drafted plan to the user conversationally and ask if they are happy with it or if we should tweak anything before proceeding.
</action>
<yield>[PAUSE - AWAIT PLAN APPROVAL]</yield>
</step>
<step id="2.2">
<action>
Parse the user's response to determine intent.
1. First, process the intent:
- If they want to discard or completely rewrite the plan for the current task: Delete the existing `<implementation_plan>` block from the `task_[name].md` session file so it can be cleanly redrafted, and [AUTO-TRANSITION TO 2.1].
- If they want a completely different task: Delete `.agenticguild/current_state.md` so the old task is no longer active, and [AUTO-TRANSITION TO 1.1].
- If they rejected the plan without direction, said "start over" (which is ambiguous), or their response is otherwise ambiguous: Ask clarifying questions to determine if they want to rewrite the current plan or reconsider the task completely. (STOP processing further steps).
- If they suggested tweaks: Update the `task_[name].md` session file `<implementation_plan>` with the requested modifications. If the tweak changes the task classification (e.g., to Bugfix), ensure you also update the classification metadata.
- If they approved the plan as-is: Treat the current `<implementation_plan>` as ready for validation.
2. Next, validate the active plan (if they approved or tweaked): Verify the plan is not empty. Verify it strictly conforms to the classification rules from Step 2.1 (e.g., mandatory Step 1 for Bugfix/Refactor, and test-first steps for Features).
3. Finalize:
- If the plan fails validation (or is empty): Automatically rewrite the plan in the session file to fix the violation, and present this corrected plan to the user for confirmation. (To prevent an infinite loop, if you have already attempted an automatic rewrite for this validation error before, STOP and ask the user to manually help fix the plan).
- If the user suggested tweaks AND the plan passes validation: Ask them to confirm the updated plan.
- If the user approved the plan as-is AND it passes validation: [AUTO-TRANSITION TO 3.0].
</action>
<yield>[PAUSE - AWAIT PLAN APPROVAL OR AUTO-TRANSITION TO 3.0]</yield>
</step>
</phase>
<phase id="3" name="Execution (Iterative TDD)">
<step id="3.0">
<action>
TYPE DEFINITION GATE — Run this step ONCE at the start of Phase 3.
First, check the task classification from the active session file:
- If classification is Bugfix, Refactor, or Chore: Domain types already exist or are not relevant to this task. [AUTO-TRANSITION TO 3.1] immediately. Do not ask the user anything.
- If classification is Feature: Continue with the steps below.
Use the `view_file` tool to read the active session file. Check if a `## Domain Model` section already exists (populated by `explore-task`).
- If a Domain Model section exists: Present the already-defined Value Objects / Branded Types to the user for confirmation. Ask if they want to add, rename, or remove any types before we begin writing tests.
- If no Domain Model section exists: Analyze the implementation plan steps and derive the domain types this feature introduces. For each domain concept that would otherwise be a raw primitive (String, Integer, etc.), propose the appropriate wrapper type:
- Ruby: propose Value Object classes with validation in the initializer.
- TypeScript: propose Branded Types (e.g. `type UserId = string & { readonly __brand: 'UserId' }`).
Present the proposed types to the user and ask for approval or modifications.
Once the user approves the types: Use the `replace_file_content` tool to write or update the `## Domain Model` section in the session file with the approved types. Confirm the file was updated, then [AUTO-TRANSITION TO 3.1].
NOTE: Do NOT write any application code or tests in this step. The only output is the type proposal and the session file update.
</action>
<yield>[PAUSE - AWAIT TYPE DEFINITION APPROVAL (Feature tasks only — all others auto-transition)]</yield>
</step>
<step id="3.1">
<action>
You MUST use the `view_file` tool to physically read the `.agenticguild/active_sessions/task_[name].md` file from disk. Do NOT rely on memory. Find the next step with `status="pending"`.
Write the failing test for this step only.
If NOT in Stealth Mode: Tag the test with the appropriate [REQ-ID] from `docs/core/SPEC.md` (format: `REQ-[DOMAIN]-[NNN]`, e.g. `REQ-AUTH-001`; projects may customize).
If in Stealth Mode: Do NOT add `[REQ-ID]` tags, keeping the tests clean for the external repo.
If the test involves a domain concept, use the Value Objects / Branded Types approved in Step 3.0 — never raw primitives.
Show the user the failing test and ask if they're ready to proceed and make it pass.
</action>
<yield>[PAUSE - AWAIT TEST APPROVAL]</yield>
</step>
<step id="3.2">
<action>
Use the `view_file` tool to read `.cursor/templates/CbC_GENERATION_PROMPT.md`.
Before writing any implementation code, apply the CbC generation protocol:
1. Fill the `<context>` block. If NOT in Stealth Mode, include the relevant REQ-ID from `docs/core/SPEC.md`. In all cases, include the current step description from the active session file.
2. Apply all `<constraints>` from the template to your generation:
- No function over 60 lines.
- No unbounded loops.
- Pre-condition and Post-condition assertions on all data mutations and service calls.
- No raw primitive types for domain concepts — use Value Objects (Ruby) or Branded Types (TypeScript).
- Cyclomatic complexity ≤ 10.
- Every new public method must be traceable to a REQ-ID from `docs/core/SPEC.md` (Unless in Stealth Mode, then skip traceability requirements).
3. REFLECTION GATE: Before outputting the code, you MUST execute the `<reflection>` step from the template — critique your own proposed implementation against each constraint. If any violation is found, fix the code first. Follow the `<output_format>` rule in the template: show the reflection block only if violations were found and corrected. If everything passes, output only the corrected code with no reflection commentary.
Write the minimum application code required to make the failing test pass.
Ensure you do not violate `docs/core/SYSTEM_ARCHITECTURE.md`.
Run the project's linters/checkers. If `docs/ai/code_review_prompt.md` exists, use the `view_file` tool to read it for project-specific commands (e.g. Quality or Pre-Flight section); otherwise run the project's standard linters.
You MUST use the `replace_file_content` tool to physically update the step's status to 'complete' in the session file.
Let the user know you've successfully passed the step, and invite them to move on to the next.
</action>
<yield>[PAUSE - AWAIT COMMAND TO PROCEED TO NEXT TDD STEP OR FINISH]</yield>
</step>
<step id="3.3">
<action>
If more steps remain in the `<implementation_plan>` with `status="pending"`, return to Step 3.1. Otherwise, pleasantly let the user know that Phase 3 is complete and suggest running the `finish-branch` skill to wrap up.
</action>
<yield>[PAUSE - PHASE 3 COMPLETE OR PROCEED TO NEXT STEP]</yield>
</step>
</phase>
</workflow>
</agentic_guild_skill>data-ai
<agentic_guild_skill> <skill_definition> <name>update-agentic-guild</name> <description>Intelligently synchronizes and updates agentic:guild OS components (skills, rules, templates) from the global repository, using AI to merge changes gracefully. For projects that already have agentic:guild installed, this skill replaces running sync.sh manually.</description> </skill_definition> <state_machine_directives> 1. NEVER execute more than ONE <step> per response. 2. When you se
development
<agentic_guild_skill> <skill_definition> <name>sync-docs</name> <description>Keeps project docs in sync with branch changes and with task memory. Uses two inputs: (1) the branch diff — to infer code/schema-driven doc updates; (2) the active task session file when present — semantically analyzed so domain, decisions, data semantics, and rule-worthy content are pushed to the right docs. Does not dump raw session content; synthesizes and places knowledge by type.</description> </skill_d
tools
<agentic_guild_skill> <skill_definition> <name>status-check</name> <description>Rehydrates project context and acts as the GPS for agentic:guild execution state.</description> </skill_definition> <state_machine_directives> 1. NEVER generate or modify application code during this skill. 2. Your ONLY job is diagnosis and context rehydration. </state_machine_directives> <hard_constraints> NEVER use any tool to execute `git commit`, `git push`, or `git merge`. These co
data-ai
<agentic_guild_skill> <skill_definition> <name>roadmap-manage</name> <description>Add, prioritize, catalog, and update items in the project roadmap.</description> </skill_definition> <state_machine_directives> 1. NEVER execute more than ONE <step> per response. 2. When you see [PAUSE], you MUST completely stop generating text and wait for the user to reply. 3. Always end your response by summarizing our progress in a conversational manner and gently inviting the user t