Install
$ agentstack add skill-rse-ase-ase-code-craft ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
@${CLAUDESKILLDIR}/../../meta/ase-control.md @${CLAUDESKILLDIR}/../../meta/ase-skill.md @${CLAUDESKILLDIR}/../../meta/ase-dialog.md @${CLAUDESKILLDIR}/../../meta/ase-getopt.md
Craft Source Code
$ARGUMENTS
is equal true"> The --quick/-Q flag is a shorthand alias: set to true, to true, and to IMPLEMENT,DELETE. Do not output anything.
From scratch craft the following feature:
@${CLAUDESKILLDIR}/../../meta/ase-format-task.md @${CLAUDESKILLDIR}/../../meta/ase-tenets.md
Procedure ---------
You MUST NOT call Edit, Write, NotebookEdit, or any filesystem-modifying tool during this entire skill. The only permitted way to persist artifacts is via ase_task_save(...).
- matches the regexp
^[a-zA-Z][a-zA-Z0-9_-]*$
"> Set (set task id to feature) and (set feature empty), call the ase_task_id(id: "", session: "") tool from the ase MCP server to switch the task, and then only output the following :
⧉ ASE: ◉ task: **, ▶ status: task given**
- has the format
:AND
matches the regexp ^[a-zA-Z][a-zA-Z0-9_-]*$ "> Set and and call the ase_task_id(id: "", session: "") tool from the ase MCP server to implicitly switch the task. Do not output anything.
- is empty">
Ask the user interactively, without a special tool, for the initial feature with a single question:
**No feature known yet. What is the feature you want to craft?**
Then set to the response of the user.
- is equal
defaultand
is not empty "> Set to a unique task id, derived from , which consists of two lower-case words concatenated with a - character. Then call the ase_task_id(id: "", session: "") tool from the ase MCP server to implicitly switch the task. Do not output anything.
- Report the task and feature with the following :
⧉ ASE: ◉ task: ** ⧉ ASE: ⇌ feature: **
- Figure out what the requested to be crafted is about.
- Ask the user for clarification if the goal of this crafting is too
unclear.
- Do not output anything in this step, unless you asked the user.
- Check the existing source files for all code which is related to the
requested new .
- Check the architecture of the existing code base to understand the
overall structures and dynamics.
- Do not output anything in this STEP 2.
- You MUST internalize and strictly honor the GENERIC TENETS,
and the CRAFTING TENETS of the ASE Tenets when updating in the following. Do not output anything.
- Do not output anything in this STEP 3.
You MUST perform the following sub-steps internally and without any output until and including the recommendation decision. Only sub-steps 4-6 below are allowed to produce output, and only if is equal false. If is equal true, skip the reporting sub-steps 4-6 entirely (perform no output at all) to speed up processing.
- Propose corresponding feature approach, including optionally,
some alternative feature approaches. Do not output anything in this sub-step.
- Reflect on and critique the proposed approaches by deriving,
per approach, a small set of concrete pros and cons. Do not output anything in this sub-step.
- Based on the reflection, decide which approach to recommend
and annotate it with an of ⚝ **RECOMMENDATION** ⚝. All other approaches receive an empty . Do not output anything in this sub-step.
- Indicate start of reporting by showing the following :
- Now report each approach with the following ,
inlining its pros/cons derived in sub-step 2, and do not output anything else in this step:
● APPROACH A: **** ○ [...] ⊕ PRO: [...] ⊖ CON: [...]
Hints:
- Give a short one-sentence of the feature
approach plus precise and ultra brief and concise feature information. Try to keep the number of bullet points (○ [...]) in the range of 1-4.
- Indicate end of reporting by showing the following :
- is not equal
true">
In the following, you MUST NOT use your built-in tool! Instead, you MUST just show a custom dialog according to the expanded custom-dialog definition. You MUST closely follow this definition.
Let the user choose the preferred approach A by raising a question with the following custom dialog, where per approach A, you determine an ultra brief summary and then use the answer option A: ⚝ **RECOMMENDATION** ⚝ - for your recommended approach plus zero or more answer options A: for all other approaches:
Select Approach: Select your preferred crafting approach to follow? A: [...]
Set to the number of the feature approach A you recommend. Output a hint with the following :
⧉ ASE: ◉ task: **, ▶ status: auto-chosen approach A**
- Compose a feature plan for the chosen feature A by
closely aligning to the existing architecture and the existing code base. Use the defined for a task plan and inject the information from feature A and all derived realization decisions into it. Store the resulting task plan in .
If a CHANGELOG.md file exists in the project (or in any affected sub-package), the plan MUST include, as part of its ## ※ CHANGES section, an explicit bullet point describing the addition of a corresponding new entry to that CHANGELOG.md file, aligned with its existing style and conventions.
is equal true"> You MUST completely omit the ## VERIFICATION section (including its heading and all of its bullet points) from .
You MUST NOT call Edit, Write, NotebookEdit, or any filesystem-modifying tool during this step.
- Call the
ase_timestamp(format: "yyyy-LL-dd HH:mm")tool of the
ase MCP server and use the text field of its response for and information. Then insert the current , , and information and calculate the number of words of .
- You then MUST save the resulting plan content with the
ase_task_save(id: "", text: "").
- Output a hint with the following :
⧉ ASE: ◉ task: **, ✪ plan: words, ▶ status: plan created**
- Directly pass-through control to the next skill:
Treat as a comma-separated chronological list of pre-selected next-step tokens. Peek the first token as (or none if the list is none/empty). Set --int-reuse-task.
- is equal
DONE">
Consume the head: set to the remaining tokens (joined back with ,, or none if empty). DONE means the freshly composed plan is finalized as-is, so do not hand off to ase-task-edit. Only output the following and then STOP. Do not implement the plan.
⧉ ASE: ◉ task: **, ✪ plan: words, ▶ status: plan finalized -- done**
- is equal
IMPLEMENT">
Consume the head: set to the remaining tokens (joined back with ,, or none if empty). is not equal none"> Set --next
Call the tool Skill(skill: "ase:ase-task-implement", args: "") to implement the freshly composed plan, bypassing ase-task-edit.
- is equal
PREFLIGHT">
Consume the head: set to the remaining tokens (joined back with ,, or none if empty). is not equal none"> Set --next
Call the tool Skill(skill: "ase:ase-task-preflight", args: "") to preflight the freshly composed plan, bypassing ase-task-edit.
Hand off to ase-task-edit. is equal EDIT"> Consume the head: set to the remaining tokens (joined back with ,, or none if empty). EDIT is this skill's own dispatch token, not part of ase-task-edit's --next vocabulary, so it must be stripped here rather than forwarded.
All remaining tokens are ase-task-edit's own vocabulary and are forwarded verbatim, so ase-task-edit consumes its own head itself. is not equal none"> Set --next
Then call the tool Skill(skill: "ase:ase-task-edit", args: "").
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.