niahere 0.2.58 → 0.2.60
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -3
- package/package.json +2 -2
- package/skills/agent-skill-creator/SKILL.md +60 -121
- package/skills/agent-skill-creator/references/patterns.md +178 -0
- package/skills/asc-cli/SKILL.md +141 -0
- package/skills/beads-tasks/SKILL.md +91 -13
- package/skills/code-review/SKILL.md +25 -0
- package/skills/{pr-reviewer/SKILL.md → code-review/pr-review.md} +1 -13
- package/skills/code-review/pre-landing.md +169 -0
- package/skills/codex/SKILL.md +134 -0
- package/skills/content-strategy/SKILL.md +12 -354
- package/skills/{marketing-ideas/SKILL.md → content-strategy/ideas.md} +5 -13
- package/skills/content-strategy/strategy.md +354 -0
- package/skills/copywriting/SKILL.md +17 -239
- package/skills/{copy-editing/SKILL.md → copywriting/editing.md} +3 -39
- package/skills/{marketing-psychology/SKILL.md → copywriting/references/psychology.md} +3 -16
- package/skills/copywriting/writing.md +232 -0
- package/skills/cro/SKILL.md +29 -0
- package/skills/{onboarding-cro/SKILL.md → cro/onboarding.md} +2 -21
- package/skills/{page-cro/SKILL.md → cro/page.md} +2 -22
- package/skills/{signup-flow-cro/SKILL.md → cro/signup-flow.md} +1 -105
- package/skills/customer-research/SKILL.md +5 -5
- package/skills/documents/SKILL.md +29 -0
- package/skills/{docx/SKILL.md → documents/docx-creating.md} +23 -274
- package/skills/documents/docx-editing.md +184 -0
- package/skills/documents/docx-reading.md +53 -0
- package/skills/{pptx/SKILL.md → documents/pptx.md} +20 -26
- package/skills/email/SKILL.md +43 -0
- package/skills/{cold-email/SKILL.md → email/cold-outreach.md} +2 -10
- package/skills/email/evals/evals.json +196 -0
- package/skills/{email-sequence/SKILL.md → email/sequences.md} +2 -12
- package/skills/frontend-design/SKILL.md +9 -164
- package/skills/frontend-design/building.md +174 -0
- package/skills/frontend-design/design-md.md +298 -0
- package/skills/gh-stamp/SKILL.md +2 -2
- package/skills/marketing/SKILL.md +43 -0
- package/skills/marketing/churn-cancel-flows.md +153 -0
- package/skills/marketing/churn-dunning.md +83 -0
- package/skills/marketing/churn-prediction.md +61 -0
- package/skills/marketing/churn-prevention.md +109 -0
- package/skills/{competitor-alternatives/SKILL.md → marketing/competitor-alternatives.md} +1 -11
- package/skills/marketing/evals/evals.json +378 -0
- package/skills/{launch-strategy/SKILL.md → marketing/launch-strategy.md} +4 -13
- package/skills/{pricing-strategy/SKILL.md → marketing/pricing-strategy.md} +3 -15
- package/skills/{social-content/SKILL.md → marketing/social-content.md} +3 -10
- package/skills/plan-review/SKILL.md +41 -0
- package/skills/plan-review/ceo.md +333 -0
- package/skills/plan-review/eng.md +139 -0
- package/skills/{minimalist-review/SKILL.md → plan-review/minimalist.md} +0 -6
- package/skills/qa/SKILL.md +353 -0
- package/skills/qa/playwright.md +242 -0
- package/skills/retro/SKILL.md +234 -0
- package/skills/seo/SKILL.md +30 -0
- package/skills/{ai-seo/SKILL.md → seo/ai-seo.md} +4 -13
- package/skills/seo/evals/evals.json +234 -0
- package/skills/{llms-txt/SKILL.md → seo/llms-txt.md} +0 -10
- package/skills/{seo-audit/SKILL.md → seo/traditional.md} +3 -14
- package/skills/shopify/SKILL.md +41 -0
- package/skills/shopify/building.md +511 -0
- package/skills/shopify/listing.md +163 -0
- package/skills/whisper-cpp-transcribe/SKILL.md +55 -0
- package/skills/wrangler/SKILL.md +138 -0
- package/src/chat/engine.ts +1 -0
- package/src/cli/index.ts +124 -38
- package/src/cli/job.ts +160 -43
- package/src/core/runner.ts +74 -15
- package/src/db/migrations/013_jobs_model.ts +7 -0
- package/src/db/models/job.ts +40 -13
- package/src/mcp/server.ts +202 -37
- package/src/mcp/tools.ts +116 -29
- package/src/types/audit.ts +1 -0
- package/src/types/job.ts +2 -0
- package/skills/ai-seo/evals/evals.json +0 -90
- package/skills/churn-prevention/SKILL.md +0 -424
- package/skills/churn-prevention/evals/evals.json +0 -93
- package/skills/cold-email/evals/evals.json +0 -94
- package/skills/competitor-alternatives/evals/evals.json +0 -93
- package/skills/copy-editing/evals/evals.json +0 -89
- package/skills/copy-editing/references/plain-english-alternatives.md +0 -394
- package/skills/email-sequence/evals/evals.json +0 -93
- package/skills/launch-strategy/evals/evals.json +0 -91
- package/skills/onboarding-cro/evals/evals.json +0 -92
- package/skills/page-cro/evals/evals.json +0 -111
- package/skills/seo-audit/evals/evals.json +0 -136
- package/skills/signup-flow-cro/evals/evals.json +0 -88
- package/skills/social-content/evals/evals.json +0 -92
- /package/skills/{onboarding-cro/references/experiments.md → cro/references/onboarding-experiments.md} +0 -0
- /package/skills/{page-cro/references/experiments.md → cro/references/page-experiments.md} +0 -0
- /package/skills/{cold-email → email}/references/benchmarks.md +0 -0
- /package/skills/{email-sequence → email}/references/copy-guidelines.md +0 -0
- /package/skills/{email-sequence → email}/references/email-types.md +0 -0
- /package/skills/{cold-email → email}/references/follow-up-sequences.md +0 -0
- /package/skills/{cold-email → email}/references/frameworks.md +0 -0
- /package/skills/{cold-email → email}/references/personalization.md +0 -0
- /package/skills/{email-sequence → email}/references/sequence-templates.md +0 -0
- /package/skills/{cold-email → email}/references/subject-lines.md +0 -0
- /package/skills/{churn-prevention → marketing}/references/cancel-flow-patterns.md +0 -0
- /package/skills/{competitor-alternatives → marketing}/references/content-architecture.md +0 -0
- /package/skills/{churn-prevention → marketing}/references/dunning-playbook.md +0 -0
- /package/skills/{social-content → marketing}/references/platforms.md +0 -0
- /package/skills/{social-content → marketing}/references/post-templates.md +0 -0
- /package/skills/{social-content → marketing}/references/reverse-engineering.md +0 -0
- /package/skills/{competitor-alternatives → marketing}/references/templates.md +0 -0
- /package/skills/{seo-audit → seo}/references/ai-writing-detection.md +0 -0
- /package/skills/{ai-seo → seo}/references/content-patterns.md +0 -0
- /package/skills/{ai-seo → seo}/references/platform-ranking-factors.md +0 -0
package/README.md
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# nia
|
|
2
2
|
|
|
3
|
+
[](https://www.npmjs.com/package/niahere)
|
|
4
|
+
[](https://www.npmjs.com/package/niahere)
|
|
5
|
+
[](https://github.com/onlyoneaman/niahere/blob/main/LICENSE)
|
|
6
|
+
|
|
3
7
|
A personal AI agent you fork and make your own. Small enough to understand, built for one user. Powered by Claude Agent SDK.
|
|
4
8
|
|
|
5
9
|
- npm package: [`niahere`](https://www.npmjs.com/package/niahere)
|
|
@@ -33,7 +37,7 @@ nia start # starts daemon + registers OS service
|
|
|
33
37
|
- **Telegram** — message your agent from your phone, typing indicator while processing
|
|
34
38
|
- **Slack** — Socket Mode bot with thread awareness, thinking emoji, watch channels for proactive monitoring
|
|
35
39
|
- **Terminal chat** — REPL with session resume support
|
|
36
|
-
- **Scheduled jobs** — recurring jobs and crons that run Claude and can message you back
|
|
40
|
+
- **Scheduled jobs** — recurring jobs and crons that run Claude and can message you back. Stateful by default (working memory), per-job model routing for cost savings
|
|
37
41
|
- **Persona system** — customizable identity, soul, owner profile, rules, and memory (preloaded every session)
|
|
38
42
|
- **Agents** — domain specialists (marketer, senior-dev) via Claude Agent SDK subagents
|
|
39
43
|
- **Skills** — loads skills from multiple directories, invokable as slash commands
|
|
@@ -63,8 +67,8 @@ nia update — update to latest version (auto-backup + resta
|
|
|
63
67
|
nia job list — list all jobs
|
|
64
68
|
nia job show [name] — full details + recent runs
|
|
65
69
|
nia job status [name] — quick status check
|
|
66
|
-
nia job add <n> <s> <p> — add a job (--type, --always, --agent, --stateless, --prompt-file)
|
|
67
|
-
nia job update <name> — update a job (--schedule, --prompt, --prompt-file, --type, --always, --agent, --stateless)
|
|
70
|
+
nia job add <n> <s> <p> — add a job (--type, --always, --agent, --model, --stateless, --prompt-file)
|
|
71
|
+
nia job update <name> — update a job (--schedule, --prompt, --prompt-file, --type, --always, --agent, --model, --stateless)
|
|
68
72
|
nia job remove <name> — delete a job
|
|
69
73
|
nia job enable / disable <n> — toggle a job
|
|
70
74
|
nia job run <name> — run a job once
|
|
@@ -106,6 +110,8 @@ All config and data lives in `~/.niahere/`:
|
|
|
106
110
|
soul.md — how the agent works
|
|
107
111
|
rules.md — behavioral instructions (loaded every session)
|
|
108
112
|
memory.md — persistent facts and context (loaded every session)
|
|
113
|
+
jobs/ — per-job working memory and state (auto-created)
|
|
114
|
+
optimizations/ — optimization loop run workspaces
|
|
109
115
|
images/
|
|
110
116
|
reference.webp — visual identity reference image
|
|
111
117
|
profile.webp — profile picture for Telegram/Slack
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "niahere",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.60",
|
|
4
4
|
"description": "A personal AI assistant daemon — chat, scheduled jobs, persona system, extensible via skills.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"license": "MIT",
|
|
44
44
|
"private": false,
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"@anthropic-ai/claude-agent-sdk": "^0.2.
|
|
46
|
+
"@anthropic-ai/claude-agent-sdk": "^0.2.97",
|
|
47
47
|
"@modelcontextprotocol/sdk": "^1.27.1",
|
|
48
48
|
"@slack/bolt": "^4.6.0",
|
|
49
49
|
"cron-parser": "^5.5.0",
|
|
@@ -1,149 +1,88 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: agent-skill-creator
|
|
3
|
-
description: Create or improve
|
|
3
|
+
description: "Create or improve AI agent skills with proper progressive disclosure, description optimization, and router patterns. Use when building a new skill, updating an existing one, merging related skills into a router, auditing skill quality, or improving skill activation rates. Also use when the user mentions 'create a skill,' 'write a skill,' 'new skill,' 'skill template,' 'improve this skill,' 'skill isn't triggering,' 'merge these skills,' or 'skill architecture.'"
|
|
4
|
+
metadata:
|
|
5
|
+
version: 2.1.0
|
|
4
6
|
---
|
|
5
7
|
|
|
6
|
-
|
|
8
|
+
# Skill Creator
|
|
7
9
|
|
|
8
|
-
|
|
10
|
+
## Before Starting
|
|
9
11
|
|
|
10
|
-
|
|
12
|
+
1. **New or improving?** — Creating from scratch vs updating existing
|
|
13
|
+
2. **Process or knowledge?** — Workflow steps → skill. Reference catalog → `references/` file, not a standalone skill.
|
|
14
|
+
3. **Standalone or merge?** — Check if related skills exist that should become one router.
|
|
11
15
|
|
|
12
|
-
|
|
13
|
-
When updating an existing skill, edit it in place wherever it lives.
|
|
16
|
+
## Step 1: Write the Description
|
|
14
17
|
|
|
15
|
-
|
|
18
|
+
The description determines activation. Most important thing you write.
|
|
16
19
|
|
|
17
|
-
|
|
18
|
-
-
|
|
19
|
-
-
|
|
20
|
+
**Rules:**
|
|
21
|
+
- Third person only
|
|
22
|
+
- WHAT it does + WHEN to use it + 5+ trigger phrases
|
|
23
|
+
- Negative boundaries (what it does NOT do)
|
|
24
|
+
- Max 1024 characters
|
|
20
25
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
Collect 3-5 realistic user requests the skill should handle.
|
|
26
|
-
|
|
27
|
-
For each example, define:
|
|
28
|
-
- Input shape (files, links, text, constraints)
|
|
29
|
-
- Expected output
|
|
30
|
-
- Quality bar (correctness, formatting, speed, safety)
|
|
31
|
-
|
|
32
|
-
### 2. Define trigger metadata
|
|
33
|
-
|
|
34
|
-
Write metadata that helps an agent decide when to use this skill.
|
|
35
|
-
|
|
36
|
-
- `name`: short, hyphenated, action-oriented
|
|
37
|
-
- `description`: what it does + clear trigger contexts
|
|
38
|
-
|
|
39
|
-
Write descriptions with explicit cues such as:
|
|
40
|
-
- task types
|
|
41
|
-
- file types
|
|
42
|
-
- domains
|
|
43
|
-
- decision boundaries (when not to use)
|
|
44
|
-
|
|
45
|
-
### 3. Design the skill structure
|
|
46
|
-
|
|
47
|
-
Pick the simplest structure that fits:
|
|
48
|
-
|
|
49
|
-
- Workflow-based: ordered steps for sequential processes
|
|
50
|
-
- Task-based: independent operations/tooling
|
|
51
|
-
- Reference-based: policy/spec driven tasks
|
|
52
|
-
- Hybrid: small workflow + task sections
|
|
53
|
-
|
|
54
|
-
Keep core instructions in `SKILL.md`. Move large detail into references.
|
|
55
|
-
|
|
56
|
-
### 4. Add reusable resources only when they pay off
|
|
57
|
-
|
|
58
|
-
Use optional folders as needed:
|
|
59
|
-
|
|
60
|
-
- `scripts/`: deterministic repeatable operations
|
|
61
|
-
- `references/`: detailed docs, schemas, standards
|
|
62
|
-
- `assets/`: templates, boilerplate, media, examples
|
|
63
|
-
|
|
64
|
-
Rules:
|
|
65
|
-
- Do not create empty folders by default.
|
|
66
|
-
- Avoid duplicate content between `SKILL.md` and references.
|
|
67
|
-
- Prefer one good script over long repeated prose.
|
|
68
|
-
|
|
69
|
-
### 5. Write implementation instructions
|
|
70
|
-
|
|
71
|
-
In `SKILL.md`, use imperative instructions and concrete decision points.
|
|
72
|
-
|
|
73
|
-
Include:
|
|
74
|
-
- quick-start flow
|
|
75
|
-
- fallback path for common failures
|
|
76
|
-
- output formatting expectations
|
|
77
|
-
- minimal examples
|
|
26
|
+
```yaml
|
|
27
|
+
description: "[What — 1 sentence]. Use when [context]. Also use when the user mentions '[phrase1],' '[phrase2],' ... [For X, see other-skill.]"
|
|
28
|
+
```
|
|
78
29
|
|
|
79
|
-
|
|
80
|
-
- tool/vendor lock-in unless explicitly required
|
|
81
|
-
- long conceptual explanations without action
|
|
82
|
-
- hidden assumptions about environment
|
|
30
|
+
## Step 2: Choose Structure
|
|
83
31
|
|
|
84
|
-
|
|
32
|
+
**Standalone** — single workflow, under ~300 lines total.
|
|
33
|
+
**Router** — multiple modes, combined >300 lines, user may not know which mode they need.
|
|
85
34
|
|
|
86
|
-
|
|
35
|
+
For detailed structure patterns with examples, see [references/patterns.md](references/patterns.md).
|
|
87
36
|
|
|
88
|
-
|
|
89
|
-
- Instructions are executable end-to-end.
|
|
90
|
-
- Optional resources are referenced from `SKILL.md`.
|
|
91
|
-
- Examples are realistic and match expected outputs.
|
|
92
|
-
- No unnecessary files (README, changelog, process notes).
|
|
93
|
-
- No conflicting or duplicated guidance.
|
|
37
|
+
## Step 3: Write the Body
|
|
94
38
|
|
|
95
|
-
|
|
39
|
+
**Process in SKILL.md, knowledge in references.** Keep body under 500 lines.
|
|
96
40
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
41
|
+
For standalone skills — imperative steps with decision points:
|
|
42
|
+
```markdown
|
|
43
|
+
## Workflow
|
|
44
|
+
1. [Action]
|
|
45
|
+
2. [Decision — if X do A, if Y do B]
|
|
46
|
+
3. [Output]
|
|
47
|
+
```
|
|
102
48
|
|
|
103
|
-
|
|
49
|
+
For router skills — just a routing table:
|
|
50
|
+
```markdown
|
|
51
|
+
## Mode Selection
|
|
52
|
+
| Task | File |
|
|
53
|
+
|------|------|
|
|
54
|
+
| Task A | [mode-a.md](mode-a.md) |
|
|
55
|
+
| Task B | [mode-b.md](mode-b.md) |
|
|
56
|
+
```
|
|
104
57
|
|
|
105
|
-
|
|
58
|
+
References one level deep only. Every reference linked from SKILL.md with "when to read" context.
|
|
106
59
|
|
|
107
|
-
|
|
108
|
-
---
|
|
109
|
-
name: your-skill-name
|
|
110
|
-
description: What this skill does and exactly when to use it.
|
|
111
|
-
---
|
|
60
|
+
## Step 4: Cross-reference
|
|
112
61
|
|
|
113
|
-
|
|
114
|
-
|
|
62
|
+
- **Within skill** (router → sub-files): markdown file links — `[mode-a.md](mode-a.md)`
|
|
63
|
+
- **Between skills**: instructional prose — "Invoke the `other-skill` skill"
|
|
64
|
+
- **Shared knowledge**: relative path links — `[ref](../other-skill/references/ref.md)`
|
|
115
65
|
|
|
116
|
-
##
|
|
117
|
-
1. First action.
|
|
118
|
-
2. Main execution path.
|
|
119
|
-
3. Output requirements.
|
|
66
|
+
## Step 5: Validate
|
|
120
67
|
|
|
121
|
-
|
|
122
|
-
-
|
|
123
|
-
-
|
|
124
|
-
-
|
|
68
|
+
- [ ] Description: third person, "Use when...", 5+ triggers, negative boundaries, <1024 chars
|
|
69
|
+
- [ ] Body under 500 lines
|
|
70
|
+
- [ ] References linked with "when to read" context, one level deep
|
|
71
|
+
- [ ] Process and knowledge separated
|
|
72
|
+
- [ ] No stale cross-references
|
|
73
|
+
- [ ] If router: routing table clear, sub-files under ~400 lines each
|
|
125
74
|
|
|
126
|
-
##
|
|
127
|
-
- `scripts/...` for deterministic tasks.
|
|
128
|
-
- `references/...` for detailed docs.
|
|
129
|
-
- `assets/...` for templates and boilerplate.
|
|
75
|
+
## Step 6: Iterate
|
|
130
76
|
|
|
131
|
-
|
|
132
|
-
- Command or checklist to verify output quality.
|
|
133
|
-
```
|
|
77
|
+
After use, observe: Did it trigger correctly? Did the agent load the right content? Tighten description triggers and routing based on what you see.
|
|
134
78
|
|
|
135
|
-
## Editing
|
|
79
|
+
## Editing Existing Skills
|
|
136
80
|
|
|
137
|
-
|
|
138
|
-
-
|
|
139
|
-
-
|
|
140
|
-
-
|
|
141
|
-
- keep backward-compatible structure when possible
|
|
81
|
+
- Preserve behavior unless intentionally changing
|
|
82
|
+
- Update description if scope changed
|
|
83
|
+
- If over 500 lines → convert to router
|
|
84
|
+
- If pure knowledge with no workflow → demote to reference file
|
|
142
85
|
|
|
143
|
-
##
|
|
86
|
+
## References
|
|
144
87
|
|
|
145
|
-
|
|
146
|
-
- discoverable (clear trigger description)
|
|
147
|
-
- executable (step-by-step, no ambiguity)
|
|
148
|
-
- maintainable (small core, reusable resources)
|
|
149
|
-
- portable (minimal runtime-specific assumptions)
|
|
88
|
+
- [Architecture Patterns](references/patterns.md) — progressive disclosure tiers, standalone vs router vs shared reference patterns, merge heuristics, description examples across domains, anti-patterns. Read this when choosing structure or writing descriptions.
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
# Skill Architecture Patterns
|
|
2
|
+
|
|
3
|
+
Concrete patterns for structuring skills. Examples use generic domains — adapt to your context.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Progressive Disclosure
|
|
8
|
+
|
|
9
|
+
Skills load in three tiers:
|
|
10
|
+
|
|
11
|
+
| Tier | What | When | Cost |
|
|
12
|
+
|---|---|---|---|
|
|
13
|
+
| L1: Metadata | name + description | Session start | ~50-100 tokens/skill |
|
|
14
|
+
| L2: Body | SKILL.md content | When triggered | ~500-2000 tokens |
|
|
15
|
+
| L3: Resources | references/, scripts/, sub-files | On demand | Variable |
|
|
16
|
+
|
|
17
|
+
Design accordingly: routing decisions in L2, detailed knowledge in L3. The description (L1) is always loaded — it's the only thing that determines whether L2 ever loads.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Pattern 1: Standalone
|
|
22
|
+
|
|
23
|
+
Single-purpose skill, one file.
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
deploy-checker/
|
|
27
|
+
├── SKILL.md # Full workflow (~150 lines)
|
|
28
|
+
└── references/
|
|
29
|
+
└── provider-configs.md
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
**Use when:** One workflow, under ~300 lines. Examples: CLI references, simple tools, single-process skills.
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Pattern 2: Router
|
|
37
|
+
|
|
38
|
+
Multiple related modes behind one entry point.
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
code-review/
|
|
42
|
+
├── SKILL.md # Router (~25 lines)
|
|
43
|
+
├── pr-review.md # Full PR review workflow
|
|
44
|
+
├── pre-landing.md # Pre-merge safety checks
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
**Router body is just a routing table:**
|
|
48
|
+
```markdown
|
|
49
|
+
| Task | File |
|
|
50
|
+
|------|------|
|
|
51
|
+
| General PR review | [pr-review.md](pr-review.md) |
|
|
52
|
+
| Pre-merge safety check | [pre-landing.md](pre-landing.md) |
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
**Use when:**
|
|
56
|
+
- Domain has 2+ related workflows
|
|
57
|
+
- Combined content would exceed ~300 lines
|
|
58
|
+
- User may not know which mode they need
|
|
59
|
+
|
|
60
|
+
**How it helps:** Collapses N L1 entries into 1. Routing moves from L1 (scan all descriptions) to L2 (read one body). Only the relevant mode's content loads.
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## Pattern 3: Shared References
|
|
65
|
+
|
|
66
|
+
Knowledge file used by multiple skills.
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
skill-a/
|
|
70
|
+
└── references/
|
|
71
|
+
└── shared-principles.md ← lives here
|
|
72
|
+
|
|
73
|
+
skill-b/SKILL.md references:
|
|
74
|
+
../skill-a/references/shared-principles.md
|
|
75
|
+
|
|
76
|
+
skill-c/SKILL.md references:
|
|
77
|
+
../skill-a/references/shared-principles.md
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
**Use when:** Multiple skills need the same domain knowledge. Put it in one place, link from others. Avoids duplication and drift.
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Pattern 4: Shared Data Layer
|
|
85
|
+
|
|
86
|
+
One skill creates context that many others consume.
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
context-builder/
|
|
90
|
+
└── SKILL.md # Creates .agents/project-context.md
|
|
91
|
+
|
|
92
|
+
# Many other skills check for this file:
|
|
93
|
+
## Before Starting
|
|
94
|
+
If `.agents/project-context.md` exists, read it first.
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
**Use when:** Foundational context that prevents multiple skills from asking the same setup questions. Product info, org context, project state.
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Pattern 5: Knowledge Demotion
|
|
102
|
+
|
|
103
|
+
Convert a knowledge catalog (no workflow) into a reference file.
|
|
104
|
+
|
|
105
|
+
**Before** — standalone skill nobody directly invokes:
|
|
106
|
+
```
|
|
107
|
+
cognitive-biases/
|
|
108
|
+
└── SKILL.md # 450 lines of reference material, no workflow
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
**After** — reference file linked from process skills:
|
|
112
|
+
```
|
|
113
|
+
persuasion-skill/references/cognitive-biases.md
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
**Rule:** If a skill has no imperative steps — no "Step 1, Step 2" — it's knowledge, not a skill. Make it a reference.
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## Merge Heuristic
|
|
121
|
+
|
|
122
|
+
**Keep standalone if ANY is true:**
|
|
123
|
+
- Unique trigger phrase ("deploy to production" ≠ "review this PR")
|
|
124
|
+
- Specific tool/runtime dependency
|
|
125
|
+
- Distinct deliverable type
|
|
126
|
+
- Foundational pre-step for other skills
|
|
127
|
+
|
|
128
|
+
**Merge into router if ALL are true:**
|
|
129
|
+
- Same domain (user thinks of them as one thing)
|
|
130
|
+
- Same input shape (same context needed)
|
|
131
|
+
- User often unsure which sub-skill they need
|
|
132
|
+
- Each sub-skill under ~400 lines
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## Description Examples
|
|
137
|
+
|
|
138
|
+
Diverse examples across domains:
|
|
139
|
+
|
|
140
|
+
**CLI tool:**
|
|
141
|
+
```yaml
|
|
142
|
+
description: "Terraform CLI reference and common workflows for plan, apply, state management, workspaces, and module development. Use when the user asks about terraform commands, infrastructure as code, or IaC workflows."
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
**Engineering process:**
|
|
146
|
+
```yaml
|
|
147
|
+
description: "Review pull requests and code diffs for correctness, design, security, performance, and style. Use when asked to 'review this PR,' 'review my changes,' 'check this diff,' or before merging code."
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
**Creative/marketing:**
|
|
151
|
+
```yaml
|
|
152
|
+
description: "Write marketing copy for landing pages, homepages, feature pages, and product pages. Use when the user says 'write copy,' 'headline help,' 'CTA copy,' or 'make this more compelling.' For email copy, see the email skill."
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
**Router:**
|
|
156
|
+
```yaml
|
|
157
|
+
description: "Unified plan review with CEO, engineering, and minimalist lenses. Use when reviewing a plan, strategy, or decision. Triggers: 'review my plan,' 'gut-check this,' 'is this too complex,' 'engineering review.'"
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
**Data/context:**
|
|
161
|
+
```yaml
|
|
162
|
+
description: "Create or update the product marketing context document that other skills use. Use when starting a new project, setting up positioning, defining ICP, or when other skills keep asking the same context questions."
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## Anti-Patterns
|
|
168
|
+
|
|
169
|
+
| Problem | Why it fails | Fix |
|
|
170
|
+
|---|---|---|
|
|
171
|
+
| Vague description | Low activation rate | Add "Use when..." with 5+ trigger phrases |
|
|
172
|
+
| 500+ line monolith | Context bloat | Split into router + sub-files |
|
|
173
|
+
| Knowledge as standalone skill | Nobody invokes a reference catalog | Demote to reference file |
|
|
174
|
+
| Nested references (A → B → C) | Agent may partially read nested files | One level deep only |
|
|
175
|
+
| Duplicate content across SKILL.md and references | Token waste, drift risk | Process in SKILL.md, knowledge in references |
|
|
176
|
+
| First-person description | Breaks discovery (injected into system prompt) | Always third person |
|
|
177
|
+
| No negative boundaries | Triggers for wrong tasks | Add "For X, see Y instead" |
|
|
178
|
+
| Domain-specific examples in a generic skill | Confuses users from other domains | Use diverse examples |
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: asc-cli
|
|
3
|
+
description: Use this skill for App Store Connect CLI (`asc`) usage, including install/auth setup, command families, CI/CD integration, and troubleshooting for releases, builds, TestFlight, metadata, signing, finance, and analytics workflows.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# App Store Connect CLI (`asc`)
|
|
7
|
+
|
|
8
|
+
Use this skill when the user asks about `asc` CLI command usage, automation patterns, CI/CD, or which `asc` command to run for a release workflow.
|
|
9
|
+
|
|
10
|
+
## Quick setup
|
|
11
|
+
|
|
12
|
+
1. Install `asc`:
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
# Recommended
|
|
16
|
+
brew install asc
|
|
17
|
+
|
|
18
|
+
# macOS/Linux fallback
|
|
19
|
+
curl -fsSL https://asccli.sh/install | bash
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
2. Verify installation:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
asc --help
|
|
26
|
+
asc --version
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
3. Authenticate:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
asc auth login \
|
|
33
|
+
--name "MyApp" \
|
|
34
|
+
--key-id "ABC123" \
|
|
35
|
+
--issuer-id "DEF456" \
|
|
36
|
+
--private-key /path/to/AuthKey.p8
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
For Apple API credentials, generate key details at:
|
|
40
|
+
https://appstoreconnect.apple.com/access/integrations/api
|
|
41
|
+
|
|
42
|
+
## Core command families
|
|
43
|
+
|
|
44
|
+
Use `asc <command> --help` for current flags and nested subcommands.
|
|
45
|
+
|
|
46
|
+
- `auth` — authentication and profile management.
|
|
47
|
+
- `doctor` — diagnose config/auth issues.
|
|
48
|
+
- `install-skills` — install asc skill pack for prebuilt workflows.
|
|
49
|
+
- `init` — initialize asc helper docs in repo.
|
|
50
|
+
- `docs` — open embedded documentation helpers.
|
|
51
|
+
- `analytics` — report and sales analytics.
|
|
52
|
+
- `insights` — weekly/daily insights.
|
|
53
|
+
- `finance` — financial and payout reports.
|
|
54
|
+
- `performance` — performance diagnostics.
|
|
55
|
+
- `feedback`, `crashes` — TestFlight feedback/crash discovery.
|
|
56
|
+
- `apps`, `app-info`, `versions`, `localizations` — app metadata lifecycle.
|
|
57
|
+
- `app-setup`, `app-tags`, `app-clips`, `android-ios-mapping` — setup and platform mappings.
|
|
58
|
+
- `screenshots`, `video-previews`, `background-assets`, `product-pages` — visual metadata assets.
|
|
59
|
+
- `builds`, `build-bundles`, `pre-release-versions` — binary build operations.
|
|
60
|
+
- `testflight`, `beta-app-localizations`, `beta-build-localizations`, `sandbox` — TestFlight workflows.
|
|
61
|
+
- `submit`, `validate`, `publish` — review/release workflows.
|
|
62
|
+
- `review`, `reviews` — review artifacts and customer reviews.
|
|
63
|
+
- `iap`, `subscriptions`, `offer-codes`, `app-events` — monetization workflows.
|
|
64
|
+
- `signing`, `certificates`, `profiles`, `bundle-ids`, `merchant-ids`, `pass-type-ids` — signing and identifiers.
|
|
65
|
+
- `notarization` — macOS notarization flow.
|
|
66
|
+
- `users`, `devices`, `account`, `actors` — team and access management.
|
|
67
|
+
- `xcode-cloud` — trigger and monitor Xcode Cloud runs.
|
|
68
|
+
- `webhooks`, `notify` — events and integrations.
|
|
69
|
+
- `workflow`, `status`, `metadata`, `diff`, `release-notes` — automation and planning utilities.
|
|
70
|
+
|
|
71
|
+
## Common practical commands
|
|
72
|
+
|
|
73
|
+
- List apps:
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
asc apps list --output table
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
- Upload a build:
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
asc builds upload --app "123456789" --file "/path/to/MyApp.ipa"
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
- Validate and submit:
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
asc validate --app "123456789" --version "1.2.3"
|
|
89
|
+
asc submit --app "123456789" --version "1.2.3"
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
- Pull TestFlight feedback and crashes:
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
asc feedback --app "123456789" --paginate
|
|
96
|
+
asc crashes --app "123456789" --sort -createdDate --limit 25
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
- Run a defined workflow:
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
asc workflow run --file .asc/workflow.json --workflow release
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## Scripting and CI practices
|
|
106
|
+
|
|
107
|
+
- Use deterministic output:
|
|
108
|
+
- `--output json` (default, machine-friendly, minified)
|
|
109
|
+
- `--output table|markdown` for humans
|
|
110
|
+
- `--paginate` to fetch all pages
|
|
111
|
+
- CI reporting:
|
|
112
|
+
- `--report` (example `junit`)
|
|
113
|
+
- `--report-file` to save artifacts.
|
|
114
|
+
- Multi-profile CI:
|
|
115
|
+
- `asc --profile production ...`
|
|
116
|
+
- Use explicit `--app`, `--limit`, `--paginate` for stable scripting.
|
|
117
|
+
- Auth in non-interactive CI:
|
|
118
|
+
- Prefer `asc auth login --name ...` with secure secret handling and reuse stored profile.
|
|
119
|
+
|
|
120
|
+
## Troubleshooting and useful patterns
|
|
121
|
+
|
|
122
|
+
- "No guessing of flags": check help first (`asc <command> --help`).
|
|
123
|
+
- "No prompt surprises": for destructive writes, prefer `--confirm`.
|
|
124
|
+
- Error-heavy operations in scripts: pin exact versions and verify return codes.
|
|
125
|
+
- Apple quirks and API notes: https://github.com/rudrankriyam/App-Store-Connect-CLI/blob/main/docs/API_NOTES.md
|
|
126
|
+
|
|
127
|
+
## Non-official caveat
|
|
128
|
+
|
|
129
|
+
This project is unofficial and not affiliated with Apple. Confirm risk acceptance before replacing official tooling.
|
|
130
|
+
|
|
131
|
+
## Official references
|
|
132
|
+
|
|
133
|
+
- https://github.com/rudrankriyam/App-Store-Connect-CLI
|
|
134
|
+
- https://github.com/rudrankriyam/App-Store-Connect-CLI/blob/main/README.md
|
|
135
|
+
- https://github.com/rudrankriyam/App-Store-Connect-CLI/blob/main/docs/COMMANDS.md
|
|
136
|
+
- https://github.com/rudrankriyam/App-Store-Connect-CLI/blob/main/docs/CI_CD.md
|
|
137
|
+
- https://github.com/rudrankriyam/App-Store-Connect-CLI/blob/main/docs/API_NOTES.md
|
|
138
|
+
- https://github.com/rudrankriyam/App-Store-Connect-CLI/blob/main/AGENTS.md
|
|
139
|
+
- https://github.com/rudrankriyam/App-Store-Connect-CLI/releases
|
|
140
|
+
- https://asccli.sh/
|
|
141
|
+
- https://github.com/rudrankriyam/app-store-connect-cli-skills
|