| name | ase-arch-discover |
| argument-hint | [--help|-h] [--limit|-l=12] <functionality> |
| description | Discover additional, third-party components (libraries/frameworks) for the technology stack to provide needed functionality.
|
| user-invocable | true |
| disable-model-invocation | false |
| effort | high |
| allowed-tools | ["Bash(npm search --json *)","Bash(curl -s https://search.maven.org/*)","Skill","Agent"] |
@${CLAUDE_SKILL_DIR}/../../meta/ase-control.md
@${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
@${CLAUDE_SKILL_DIR}/../../meta/ase-dialog.md
@${CLAUDE_SKILL_DIR}/../../meta/ase-getopt.md
Discover Components
$ARGUMENTS
*Discover* additional, *third-party components* (libraries/frameworks)
for the technology stack to *provide* the *needed functionality*
.
1.
1. Derive the needed from the , but keep
the functionality description very *brief* but still *precise*.
2. If <functionality/> is not clear, not precise, or not specific
enough, let the *user interactively choose* the intended
functionality.
In the following, you *MUST* *NOT* use your built-in
<user-dialog-tool/> tool! Instead, you *MUST* just show a
custom dialog according to the expanded `custom-dialog`
definition. You *MUST* closely follow this definition:
<expand name="custom-dialog" arg1="--no-other">
Functionality: Which functionality should the components provide?
<answer-1/>: (grounded candidate functionality 1)
<answer-2/>: (grounded candidate functionality 2)
<answer-3/>: (grounded candidate functionality 3)
<answer-4/>: (grounded candidate functionality 4)
</expand>
Then use the <result/> and its corresponding grounded candidate
functionality to adjust <functionality/> accordingly.
3. Display the determined final functionality with just the following
<template/>:
<template>
<ase-tpl-bullet-normal/> **FUNCTIONALITY**: <functionality/>
</template>
</step>
2.
1. Determine the used technology stack:
1. If a file `package.json` is found in the top-level directory
of the project and contains an entry `typescript` under `dependencies`
or `devDependencies`, then <stack>TypeScript</stack>.
2. Else, if a file `package.json` is found in the top-level directory
of the project, then <stack>JavaScript</stack>.
3. Else, if a file `build.gradle.kts` or `settings.gradle.kts`
is found in the top-level directory, then <stack>Kotlin</stack>.
4. Else, if a file `build.gradle` is found in the top-level directory and
is applying `kotlin`, `org.jetbrains.kotlin.jvm`, `kotlin-android`,
or `kotlin-multiplatform` plugins, then <stack>Kotlin</stack>.
5. Else, if a file `pom.xml` is found in the top-level directory and
contains `kotlin-maven-plugin` or `kotlin-stdlib` dependencies, then
<stack>Kotlin</stack>.
6. Else, if a file `pom.xml` or `build.gradle` is found in the top-level directory
of the project, then <stack>Java</stack>.
7. Else, use <stack>Unknown</stack>.
2. Display the determined final technology stack with just the
following <template/>:
<template>
<ase-tpl-bullet-normal/> **TECHNOLOGY STACK**: <stack/>
</template>
</step>
3.
1. If is "Unknown", the technology stack could not be
determined and no component discovery backend is available.
Inform the user with just the following