Initial commit: Hermes Agent Skills collection
This commit is contained in:
@@ -0,0 +1,179 @@
|
||||
---
|
||||
name: tech-pov
|
||||
description: "Give a decisive, project-grounded verdict on whether to adopt, switch to, or revisit a technology, library, pattern, or platform. Judged against THIS project, not in the abstract. Use for technology adoption decisions."
|
||||
version: 1.0.0
|
||||
author: Hermes Agent (merged from Every Inc compound-engineering ce-pov)
|
||||
license: MIT
|
||||
metadata:
|
||||
hermes:
|
||||
tags: [decision, evaluation, technology, verdict, compound-engineering]
|
||||
related_skills: [brainstorming, plan, compound-learning]
|
||||
---
|
||||
|
||||
# Technology Point of View
|
||||
|
||||
Return a decisive, **graded verdict** on something from the outside world — judged against *this project*, not in the abstract.
|
||||
|
||||
**The one rule that is the whole moat:** Do not issue a verdict you did not earn against the project's own context. Generic web research already covers "tell me about X". The differentiator is the refusal to answer in the abstract.
|
||||
|
||||
## When to Use
|
||||
|
||||
- "Should we adopt/switch to/migrate to technology X?"
|
||||
- "Is it time to revisit our choice of Y?"
|
||||
- "Does this CVE/deprecation/ecosystem-shift affect us?"
|
||||
- "Compare X vs what we already use — is it worth switching?"
|
||||
|
||||
**Not for:** neutral explainers, generating options (use `ideate`), or scoping what to build (use `brainstorming`).
|
||||
|
||||
## The Two Floors
|
||||
|
||||
A valid verdict must clear **two absolute floors**:
|
||||
|
||||
1. **Project floor** — a concrete verified project fact: a named incumbent + a touchpoint (where does X interact with our code?), or the verified absence of one + where it would fit, or a prior decision about it
|
||||
2. **External floor** — at least one verified external source (docs, changelog, benchmark, CVE)
|
||||
|
||||
Both floors are independent. Strong external evidence never compensates for a thin project leg, and vice versa. Neither conversation claims nor user assertions substitute for grounding.
|
||||
|
||||
## The Process
|
||||
|
||||
### Phase 0: Frame and Classify
|
||||
|
||||
1. **Detect invocation context:**
|
||||
- Cold: user asks about adopting/switching to X
|
||||
- Warm: mid-session second opinion ("is X relevant to what we're doing?")
|
||||
|
||||
2. **Establish the frame** — orient before researching:
|
||||
- What is the candidate? (named technology/library/pattern)
|
||||
- What is the intent? (adopt / migrate / compare / is-this-our-problem)
|
||||
- If ambiguous, ask one clarifying question
|
||||
|
||||
3. **Classify reversibility tier:**
|
||||
|
||||
| Tier | Description | Examples | Scout Depth |
|
||||
|---|---|---|---|
|
||||
| **Tier 1** | Two-way door, trivially reversible | Dependency, lint rule, config | Single grounding pass |
|
||||
| **Tier 2** | One-way but bounded blast radius | Data store, internal API, in-codebase migration | Full scout fleet |
|
||||
| **Tier 3** | One-way, high-stakes | Security, legal, public API, irreversible data migration | Deep research + precedent search |
|
||||
|
||||
State the tier. Let the user override.
|
||||
|
||||
### Phase 1: Ground (dispatch scouts)
|
||||
|
||||
Grounding searches code, git, issue tracker, and docs. Dispatch to subagents so the raw search doesn't flood your context.
|
||||
|
||||
**For Tier 1** — single combined pass:
|
||||
- One `delegate_task` for project facts (incumbent, call sites)
|
||||
- One `delegate_task` for external evidence (docs, benchmarks)
|
||||
|
||||
**For Tier 2/3** — full fleet in parallel:
|
||||
|
||||
```python
|
||||
delegate_task(tasks=[
|
||||
{
|
||||
"goal": "Project grounding: find the named incumbent for [candidate] in this codebase. Find call sites, configuration, and usage patterns. Report: what we currently use, where, and any pain points.",
|
||||
"context": "Candidate: [X]. Search the codebase for the current solution and its footprint.",
|
||||
"toolsets": ["terminal", "file"]
|
||||
},
|
||||
{
|
||||
"goal": "Precedent scan: search docs/solutions/, ADRs, design docs for prior decisions about [candidate] or its category.",
|
||||
"context": "Search for any previous evaluation or decision about [X] or similar technologies.",
|
||||
"toolsets": ["file"]
|
||||
},
|
||||
{
|
||||
"goal": "External evidence: research [candidate] — current version, stability, licensing, known issues, migration cost, community health, benchmarks.",
|
||||
"context": "Evaluate [X] externally: version, license, issues, migration difficulty, alternatives.",
|
||||
"toolsets": ["web"]
|
||||
}
|
||||
])
|
||||
```
|
||||
|
||||
For Tier 3, add: mandatory two-source corroboration on every load-bearing claim.
|
||||
|
||||
### Phase 2: Verify Against the Two Floors
|
||||
|
||||
Check the grounding:
|
||||
- **Project floor met?** Is there a verified project fact (incumbent + touchpoint)?
|
||||
- **External floor met?** Is there at least one verified external source?
|
||||
|
||||
If either floor fails → return Hold, not a verdict.
|
||||
|
||||
### Phase 3: Emit the Verdict
|
||||
|
||||
The verdict is a compact chat block, not a research report. Size it to the tier.
|
||||
|
||||
```markdown
|
||||
## Verdict: [Candidate]
|
||||
|
||||
**Grade:** ADOPT | TRIAL | HOLD | REJECT | NOT-OUR-PROBLEM
|
||||
**Reversibility:** Tier [1/2/3]
|
||||
|
||||
### Project Fit
|
||||
[How does X fit our current stack? What does it replace/augment?]
|
||||
|
||||
### Migration Cost
|
||||
[Effort estimate, risk, blast radius]
|
||||
|
||||
### Evidence
|
||||
- [Verified source 1: what it says]
|
||||
- [Verified source 2: what it says]
|
||||
|
||||
### Conditions
|
||||
[Any prerequisites, caveats, or concerns]
|
||||
|
||||
### Confidence
|
||||
[High/Medium/Low] — [why]
|
||||
```
|
||||
|
||||
### Grade Definitions
|
||||
|
||||
| Grade | Meaning | Next Step |
|
||||
|---|---|---|
|
||||
| **ADOPT** | Worth committing to now | → `plan` to scope the adoption |
|
||||
| **TRIAL** | Promising but unproven for us | → Timeboxed spike via `subagent-driven-development` |
|
||||
| **HOLD** | Not now, revisit later | → No action, document the decision |
|
||||
| **REJECT** | Not worth it for this project | → No action, document why |
|
||||
| **NOT-OUR-PROBLEM** | External change doesn't affect us | → No action |
|
||||
|
||||
### Phase 4: Follow-up
|
||||
|
||||
Offer next steps based on the grade:
|
||||
- **ADOPT, scope clear** → suggest `plan`
|
||||
- **ADOPT, scope fuzzy** → suggest `brainstorming`
|
||||
- **TRIAL** → suggest a timeboxed spike
|
||||
- **HOLD/REJECT/NOT-OUR-PROBLEM** → done, optionally capture via `compound-learning`
|
||||
|
||||
For Tier 1 or REJECT: end with a single prose line, no menu.
|
||||
For Tier 2/3 with actionable grade: offer the computed next step as the first option.
|
||||
|
||||
## Pitfalls
|
||||
|
||||
- **Don't issue abstract verdicts** — "X is generally good" is useless; "X fits our project because..." is the point
|
||||
- **Don't skip the project floor** — strong external evidence doesn't compensate for not knowing how X interacts with OUR code
|
||||
- **Don't over-research Tier 1** — a trivially reversible decision doesn't need a full scout fleet
|
||||
- **Don't under-research Tier 3** — security/legal/public API decisions need deep diligence
|
||||
- **Don't present a research report** — lead with the verdict grade, cite evidence, don't paste raw search output
|
||||
|
||||
## Integration with Other Skills
|
||||
|
||||
- **brainstorming** — routes verdict-shaped questions here (Phase 6.5)
|
||||
- **plan** — receives ADOPT verdicts to scope the implementation
|
||||
- **compound-learning** — captures tooling decisions for future reference
|
||||
- **ideate** — for open-ended "what should we use for X?" (this skill is for bounded choices)
|
||||
|
||||
## Hermes Agent Integration
|
||||
|
||||
- `delegate_task` — dispatch grounding scouts in parallel
|
||||
- `search_files` — find incumbents and prior decisions in the codebase
|
||||
- `read_file` — read existing solutions/ADRs
|
||||
- `terminal` — git log, dependency analysis
|
||||
- Web tools — external research (docs, benchmarks, CVEs)
|
||||
|
||||
## Remember
|
||||
|
||||
```
|
||||
Two floors: project fact + external source
|
||||
Grade, don't explain
|
||||
Size the verdict to the reversibility tier
|
||||
Lead with the grade, cite evidence
|
||||
Never issue a verdict you didn't earn against this project
|
||||
```
|
||||
Reference in New Issue
Block a user