ase-code-insight
Give insights into the source code.
SKILL.mdplugin/skills/ase-code-insight/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-code-insight"> Project Insight </purpose> <expand name="getopt" arg1="ase-code-insight"> $ARGUMENTS </expand> <objective> Give *insights* into the project through the source code of <getopt-arguments/>. </objective> <flow> 1. <step id="STEP 1: PROJECT ABSTRACT"><if condition="<ase-project-boxing/> is equal `black`">
The project source artifacts are classified as a *black box*, so the
user does *not* want them inspected or their internals surfaced.
*Skip* the entire insight gathering: do *not* read any source, only
output the following <template/> and then *SKIP* the remaining steps
STEP 2 through STEP 4:
<template>
<ase-tpl-bullet-normal/> **PROJECT INSIGHT**: *suppressed* (`project.boxing` is `black`)
</template>
</if>
Determine an <abstract/> summary of this project.
For this, check a potentially existing `README.*` file
or scan the source files of <getopt-arguments/> and figure it out
indirectly.
Display the results with the following <template/>:
<template>
<ase-tpl-bullet-normal/> **PROJECT ABSTRACT**:
<abstract/>
</template>
</step>
- <step id="STEP 2: PROJECT AUTHOR">
Determine the <author/> of this project.
For this, run the following command...
git shortlog -sn --no-merges HEAD...and then display the results with the following <template/>:
<template> <ase-tpl-bullet-normal/> **PROJECT AUTHOR**: <author/> </template> </step> - <step id="STEP 3: SOURCE CHURN">
Display the source files of <getopt-arguments/> which caused the
most churn by figuring out which of them have the most commits.
Display the following <template/>:
<template>
<ase-tpl-bullet-normal/> **SOURCE CHURN**:
</template>
Then run the following command...
git log --format=format: --name-only --since="1 year ago" -- <getopt-arguments/> | grep -v '^$' | sort | uniq -c | sort -nr | head -10...and then display its result as a table with a table head and columns named "Commits" and "Source File". Do not display any further explanation of this result.
</step> - <step id="STEP 4: MODULE STRUCTURE">
Display the following <template/>:
<template>
<ase-tpl-bullet-normal/> **MODULE STRUCTURE**:
</template>
Find all modules (or OOP classes) of <getopt-arguments/> and build a Mermaid specification <mermaid-spec/> for a
</step>flowchart TBdiagram with all modules as boxes and the imports between modules as the directed edges. Then dispatch the rendering to thease-meta-diagramsub-agent by calling the toolAgent(description: "Diagram Rendering", subagent_type: "ase:ase-meta-diagram", prompt: <mermaid-spec/>, run_in_background: false)and reproduce its returned fenced code block verbatim in the response text. Do not display any further explanation except for this diagram.