Skip to content

Commit 1e23fcf

Browse files
Merge pull request #67 from Factory-AI/ssharma/security-review-plugin
chore: Security review plugins
2 parents 39d5445 + ef45cd8 commit 1e23fcf

4 files changed

Lines changed: 14 additions & 86 deletions

File tree

action.yml

Lines changed: 6 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -252,66 +252,16 @@ runs:
252252
env:
253253
EXPERIMENTAL_ALLOWED_DOMAINS: ${{ inputs.experimental_allowed_domains }}
254254

255-
- name: Install Security Skills
255+
- name: Install Security Plugin
256256
if: steps.prepare.outputs.contains_trigger == 'true' && steps.prepare.outputs.install_security_skills == 'true'
257257
shell: bash
258258
run: |
259-
echo "Installing security skills from Factory-AI/skills..."
260-
SKILLS_DIR="$HOME/.factory/skills"
261-
mkdir -p "$SKILLS_DIR"
262-
263-
# Clone public skills repo (sparse checkout for efficiency)
264-
TEMP_DIR=$(mktemp -d)
265-
git clone --filter=blob:none --sparse \
266-
"https://github.com/Factory-AI/skills.git" \
267-
"$TEMP_DIR" 2>/dev/null || {
268-
echo "Warning: Could not clone skills repo. Security skills will not be available."
269-
exit 0
259+
echo "Installing security-engineer plugin from factory-plugins marketplace..."
260+
droid plugin marketplace add https://github.com/Factory-AI/factory-plugins 2>/dev/null || true
261+
droid plugin install security-engineer@factory-plugins --scope user 2>/dev/null || {
262+
echo "Warning: Could not install security-engineer plugin. Security review may have limited functionality."
270263
}
271-
272-
cd "$TEMP_DIR"
273-
git sparse-checkout set \
274-
skills/threat-model-generation \
275-
skills/commit-security-scan \
276-
skills/vulnerability-validation \
277-
skills/security-review 2>/dev/null || true
278-
279-
# Copy skills to ~/.factory/skills/ and track installed count
280-
INSTALLED_COUNT=0
281-
for skill in threat-model-generation commit-security-scan vulnerability-validation security-review; do
282-
if [ -d "skills/$skill" ]; then
283-
cp -r "skills/$skill" "$SKILLS_DIR/"
284-
echo " Installed skill: $skill"
285-
INSTALLED_COUNT=$((INSTALLED_COUNT + 1))
286-
else
287-
echo " Warning: Skill not found in repo: $skill"
288-
fi
289-
done
290-
291-
# Cleanup
292-
rm -rf "$TEMP_DIR"
293-
294-
# Verify at least one skill was installed
295-
if [ "$INSTALLED_COUNT" -eq 0 ]; then
296-
echo "Warning: No security skills were installed. The skills may not exist in the Factory-AI/skills repository."
297-
echo "Security review will proceed but may have limited functionality."
298-
else
299-
echo "Security skills installation complete ($INSTALLED_COUNT skills installed)"
300-
fi
301-
302-
# Verify skills exist in the target directory
303-
echo "Verifying installed skills in $SKILLS_DIR..."
304-
VERIFIED_COUNT=0
305-
for skill in threat-model-generation commit-security-scan vulnerability-validation security-review; do
306-
if [ -d "$SKILLS_DIR/$skill" ]; then
307-
echo " Verified: $skill"
308-
VERIFIED_COUNT=$((VERIFIED_COUNT + 1))
309-
fi
310-
done
311-
312-
if [ "$VERIFIED_COUNT" -ne "$INSTALLED_COUNT" ]; then
313-
echo "Warning: Skill verification mismatch. Expected $INSTALLED_COUNT, found $VERIFIED_COUNT in $SKILLS_DIR"
314-
fi
264+
echo "Security plugin installation complete"
315265
316266
- name: Run Droid Exec
317267
id: droid

security/action.yml

Lines changed: 6 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -70,37 +70,15 @@ runs:
7070
FACTORY_API_KEY: ${{ inputs.factory_api_key }}
7171
OVERRIDE_GITHUB_TOKEN: ${{ inputs.github_token }}
7272

73-
- name: Install Security Skills
73+
- name: Install Security Plugin
7474
shell: bash
7575
run: |
76-
echo "Installing security skills from Factory-AI/skills..."
77-
SKILLS_DIR="$HOME/.factory/skills"
78-
mkdir -p "$SKILLS_DIR"
79-
80-
TEMP_DIR=$(mktemp -d)
81-
git clone --filter=blob:none --sparse \
82-
"https://github.com/Factory-AI/skills.git" \
83-
"$TEMP_DIR" 2>/dev/null || {
84-
echo "Warning: Could not clone skills repo."
85-
exit 0
76+
echo "Installing security-engineer plugin from factory-plugins marketplace..."
77+
droid plugin marketplace add https://github.com/Factory-AI/factory-plugins 2>/dev/null || true
78+
droid plugin install security-engineer@factory-plugins --scope user 2>/dev/null || {
79+
echo "Warning: Could not install security-engineer plugin. Security review may have limited functionality."
8680
}
87-
88-
cd "$TEMP_DIR"
89-
git sparse-checkout set \
90-
skills/threat-model-generation \
91-
skills/commit-security-scan \
92-
skills/vulnerability-validation \
93-
skills/security-review 2>/dev/null || true
94-
95-
for skill in threat-model-generation commit-security-scan vulnerability-validation security-review; do
96-
if [ -d "skills/$skill" ]; then
97-
cp -r "skills/$skill" "$SKILLS_DIR/"
98-
echo " Installed skill: $skill"
99-
fi
100-
done
101-
102-
rm -rf "$TEMP_DIR"
103-
echo "Security skills installation complete"
81+
echo "Security plugin installation complete"
10482
10583
- name: Generate Security Prompt
10684
id: prompt

src/create-prompt/templates/security-report-prompt.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ The gh CLI is installed and authenticated via GH_TOKEN.
4343
4444
## Security Skills Available
4545
46-
You have access to these Factory security skills (installed in ~/.factory/skills/):
46+
You have access to security skills from the security-engineer plugin (security-engineer@factory-plugins):
4747
4848
1. **threat-model-generation** - Generate STRIDE-based threat model for the repository
4949
2. **commit-security-scan** - Scan code for security vulnerabilities

src/create-prompt/templates/security-review-prompt.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ ${notifyTeam ? `- Notify Team: ${notifyTeam} (mention on critical findings)` : "
3838
3939
## Security Skills Available
4040
41-
You have access to these Factory security skills (installed in ~/.factory/skills/):
41+
You have access to security skills from the security-engineer plugin (security-engineer@factory-plugins):
4242
4343
1. **threat-model-generation** - Generate STRIDE-based threat model for the repository
4444
2. **commit-security-scan** - Scan code changes for security vulnerabilities

0 commit comments

Comments
 (0)