npx claudepluginhub markacianfrani/armor --plugin armorThis skill uses the workspace's default tool permissions.
Extract design patterns from Figma comment threads by identifying repeated tensions, debates, and design decisions.
Mandates invoking relevant skills via tools before any response in coding sessions. Covers access, priorities, and adaptations for Claude Code, Copilot CLI, Gemini CLI.
Share bugs, ideas, or general feedback.
Extract design patterns from Figma comment threads by identifying repeated tensions, debates, and design decisions.
A pattern is NOT just a documented design decision. A good pattern:
Example of repetition:
Not a pattern:
Let the patterns emerge from the content. Don't pre-define what tensions to look for. Instead:
export FIGMA_PAT="your-token-here"
python scripts/fetch_comments.py <file_key> --output comments.json
python scripts/extract_threads.py comments.json --min-replies 4 --output threads.json
Feed threads to LLM with this prompt structure:
For each thread, identify:
1. What is the core question or tension?
2. What forces are in conflict?
3. Who are the stakeholders (by role, not name)?
4. Was it resolved? How?
5. What conditions would trigger this same debate again?
After analyzing threads individually, cluster by similarity:
Given these thread analyses, identify patterns:
- Which tensions appear repeatedly?
- What recurring problems keep coming up?
- Are there exceptions that keep being debated?
For each pattern found:
- Name it
- Describe the forces in tension
- State when it applies
- Provide a decision framework
- Cite example threads as precedent
A good pattern has:
Let the LLM identify these organically, but common pattern types include:
Analyze this Figma comment thread for pattern mining:
Thread ID: {thread_id}
Replies: {reply_count}
Participants: {participants}
Messages:
{formatted_messages}
Questions:
1. What is the fundamental tension here? (Not the surface topic - the underlying conflict)
2. Strip away the specific context (insurance, this button, etc.) - what's the abstract problem?
3. What forces are in conflict? Who wants what?
4. Was a resolution reached? Is it generalizable or context-specific?
5. Have you seen this same fundamental tension in other threads?
Output as JSON:
{
"surface_topic": "what they're literally discussing",
"fundamental_tension": "the abstract underlying conflict",
"forces": [
{"stakeholder": "role", "wants": "what they're optimizing for"}
],
"resolution": "string or null",
"resolution_is_agnostic": true/false,
"similar_to_threads": ["thread_ids if you've seen this tension before"]
}
I have analyzed {n} Figma comment threads. Here are the tensions found:
{thread_analyses}
Look for REPEATED tensions - the same fundamental conflict appearing with different surface topics.
A good pattern:
- Appears in 2+ threads with different contexts
- Has an agnostic solution (not tied to specific domain)
- Is reusable in new situations you haven't seen
- Can stand alone but may also build on other patterns
For each repeated tension, identify:
1. Name: Short, context-free identifier
2. The fundamental tension (abstract)
3. Which threads exhibit it (with their surface topics)
4. An agnostic solution principle
5. What patterns it builds on (if any)
6. What patterns might build on it (if any)
Ignore one-off debates that don't repeat. We want patterns, not incidents.
Output as JSON array.
Write a pattern document for:
Pattern: {name}
Appears in threads: {thread_ids}
A good pattern:
- States a recurring tension clearly
- Provides a solution that works across contexts
- Is specific enough to be actionable
- Is abstract enough to be reusable
- Can stand alone
- References related patterns it builds on or enables
Include:
## {Pattern Name}
### Tension
What fundamental forces are in conflict? (Context-agnostic)
### Solution
A clear, reusable principle. Not "do X in insurance forms" but "do X when Y condition exists."
### When to Apply
Trigger conditions that are testable and context-free.
### Resolution Framework
How to decide. If/then logic or decision tree.
### Builds On
What existing patterns does this assume or extend?
### Enables
What patterns become possible once this is in place?
### Examples
Thread references showing this tension with different surface topics.
### Anti-patterns
What does violating this pattern look like?
After analyzing all threads, explicitly look for repetition:
Review all the fundamental tensions you identified:
{list_of_tensions}
Which tensions appear MORE THAN ONCE with different surface topics?
For each repeated tension:
- List the threads where it appears
- Note how the surface topic differs but the tension is the same
- Rate confidence that this is truly the same pattern (high/medium/low)
These repeated tensions are your pattern candidates. One-offs are noise.
{
"file_key": "ABC123",
"threads_analyzed": 45,
"patterns": [
{
"name": "pattern-name",
"tension": "The fundamental conflict (context-agnostic)",
"solution": "A reusable principle that resolves the tension",
"citations": [
{
"thread": "#377",
"node_id": "1437:18469",
"file_key": "ABC123",
"surface_topic": "Phone number helper text"
}
],
"trigger_conditions": [
"Context-free conditions when this applies"
],
"resolution_framework": "IF condition THEN action",
"builds_on": ["other-pattern-name"],
"enables": ["patterns-this-makes-possible"],
"anti_patterns": [
"What violating this looks like"
],
"confidence": "high/medium/low based on repetition"
}
],
"noise": [
{
"thread_id": "#123",
"why_not_pattern": "One-off, context-specific, no repetition"
}
]
}
After mining multiple files, aggregate patterns:
Given patterns from multiple files:
{file_patterns}
Identify organizational patterns - tensions that appear across the organization.
These are the highest-value patterns for agent skills.
Once a pattern is validated across files: