ase-task-view
View current or given task plan. Use when the user calls to "view", "show" or "see" the "task", "plan", "spec", or "specification".
SKILL.mdplugin/skills/ase-task-view/SKILL.md
GitHub@${CLAUDE_SKILL_DIR}/../../meta/ase-control.md @${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md @${CLAUDE_SKILL_DIR}/../../meta/ase-getopt.md
<purpose name="ase-task-view"> View a Task Plan </purpose><expand name="getopt" arg1="ase-task-view" arg2="--full|-f"> $ARGUMENTS </expand>
<objective> *View* the task plan. </objective>Procedure
Determine Task:
Set <id><getopt-arguments/></id> initially, with any leading and trailing whitespace stripped. Inherit the always existing <ase-task-id/> from the current context. Do not output anything.
- <if condition="<id/> is empty"> Set <id><ase-task-id/></id> Do not output anything. </if>
- <if condition="<id/> does NOT match the regexp `^[a-zA-Z0-9#][a-zA-Z0-9#_-]*$`"> Only output the following <template/> and then immediately *STOP* processing the entire current skill: <template> ⧉ **ASE**: ☻ skill: **ase-task-view**, ▶ ERROR: expected single `[<id>]` argument </template> </if>
Perform Operation:
Call the
ase_task_load(id: "<id/>", variant: "render")tool of theaseMCP server -- if <getopt-option-full/> istrue, additionally with the argumentattachments: "full", else with the payloads of all attachments elided to[elided: <n/> lines]markers (the default) -- to load the task plan content in its rendering-prepared form -- this skill is display-only and hence never persists the plan again -- and set <text/> to thetextoutput field of thisase_task_loadtool call. Do not output anything related to this MCP tool call.If <text/> starts with
<template> ⧉ **ASE**: ◉ task: **<id/>**, ▶ status: **<text/>** </template>ERROR:orWARNING:: Set <task-content></task-content> (set task content to empty). Only output the following <template/>:If <text/> starts NOT with
<template> ⧉ **ASE**: ◉ task: **<id/>**, ▶ status: **plan loaded** </template>ERROR:and NOT withWARNING:: Set <task-content><text/></task-content> (set task content to text). Only output the following <template/>:
- <if condition="<task-content/> is not empty">
Treat <task-content/> as *verbatim* Markdown.
For the rendering only, drop the leading frontmatter block -- both
<format> ◉ **Id:** <task-id/> ⎈ **Created:** <timestamp-created/> ⚙ **Modified:** <timestamp-modified/> ⊞ **Group:** <task-group/> ◷ **Phase:** <task-phase/> ⇢ **After:** <task-after/> ◐ **Status:** <task-status/> ☯ **Kind:** <task-kind/> ⚖ **Effort:** <task-effort/> ⚑ **Tags:** <task-tags/> ⇤ **Source:** <task-source/> ⇢ **Changeset:** <task-changeset/> ⇥ **Target:** <task-target/> </format>---delimiters and all of their keys -- and instead place the following column-aligned glyph lines before the# TASK: <title/>heading, separated from it by an empty line, omitting the line of every key absent from the frontmatter and always omitting theTypekey. The glyph lines MUST stay above the heading, exactly where the frontmatter block sits in the plan file, and MUST NOT be moved below it. This keeps the---delimiters from rendering as a horizontal rule plus a setext heading. This rewrite is display-only and MUST NOT change <task-content/> itself:Render plan: Only output the following <template/>. Do not truncate, summarize, or partially show the plan. Use the following <template/>:
<template> <ase-tpl-head title="TASK" subtitle="<task-id/>"/> <task-content/> <ase-tpl-foot title="TASK" subtitle="<task-id/>"/> </template><if condition="the backmatter of <task-content/> contains an attachment block with the
<template> ⧉ **ASE**: ◉ task: **<task-id/>**, ▶ WARNING: implementation draft attachment is **stale** (older than the plan) </template> </if> </if>Typekey valuetext/x-diff; charset=utf-8; kind="draft"which is stale, i.e. itsModifiedkey is absent or older than theModifiedkey of the frontmatter"> Directly after this <template/>, only output the following <template/>: Finally, give the closing hints by expanding the following (which, depending on the configured <ase-guidance-level/>, may each expand into nothing and hence emit no output at all):
<if condition="<task-content/> is not empty"> <ase-tpl-hint level="normal"> Use `/ase-task-edit` or `/ase-task-grill` to refine this plan, `/ase-task-implement --draft` to draft its implementation, `/ase-task-implement` to realize it, and `/ase-task-integrate` to deliver it. </ase-tpl-hint> <if condition="<getopt-option-full/> is not equal `true` and the backmatter of <task-content/> contains an elided `Data` payload"> <ase-tpl-hint level="verbose"> Use `/ase-task-view --full` to show the elided attachment payloads, too. </ase-tpl-hint> </if> <if condition="the implementation draft attachment block was reported as *stale* above"> <ase-tpl-hint level="minimal"> Run `/ase-task-implement --draft` again to re-create the implementation draft for the changed plan, as `/ase-task-integrate --draft` refuses a stale draft. </ase-tpl-hint> </if> </if> <else> <ase-tpl-hint level="normal"> No plan exists under this task id -- use `/ase-task-list` to see the available tasks and `/ase-task-edit` to create a plan. </ase-tpl-hint> </else>