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.
Files changed (106) hide show
  1. package/README.md +9 -3
  2. package/package.json +2 -2
  3. package/skills/agent-skill-creator/SKILL.md +60 -121
  4. package/skills/agent-skill-creator/references/patterns.md +178 -0
  5. package/skills/asc-cli/SKILL.md +141 -0
  6. package/skills/beads-tasks/SKILL.md +91 -13
  7. package/skills/code-review/SKILL.md +25 -0
  8. package/skills/{pr-reviewer/SKILL.md → code-review/pr-review.md} +1 -13
  9. package/skills/code-review/pre-landing.md +169 -0
  10. package/skills/codex/SKILL.md +134 -0
  11. package/skills/content-strategy/SKILL.md +12 -354
  12. package/skills/{marketing-ideas/SKILL.md → content-strategy/ideas.md} +5 -13
  13. package/skills/content-strategy/strategy.md +354 -0
  14. package/skills/copywriting/SKILL.md +17 -239
  15. package/skills/{copy-editing/SKILL.md → copywriting/editing.md} +3 -39
  16. package/skills/{marketing-psychology/SKILL.md → copywriting/references/psychology.md} +3 -16
  17. package/skills/copywriting/writing.md +232 -0
  18. package/skills/cro/SKILL.md +29 -0
  19. package/skills/{onboarding-cro/SKILL.md → cro/onboarding.md} +2 -21
  20. package/skills/{page-cro/SKILL.md → cro/page.md} +2 -22
  21. package/skills/{signup-flow-cro/SKILL.md → cro/signup-flow.md} +1 -105
  22. package/skills/customer-research/SKILL.md +5 -5
  23. package/skills/documents/SKILL.md +29 -0
  24. package/skills/{docx/SKILL.md → documents/docx-creating.md} +23 -274
  25. package/skills/documents/docx-editing.md +184 -0
  26. package/skills/documents/docx-reading.md +53 -0
  27. package/skills/{pptx/SKILL.md → documents/pptx.md} +20 -26
  28. package/skills/email/SKILL.md +43 -0
  29. package/skills/{cold-email/SKILL.md → email/cold-outreach.md} +2 -10
  30. package/skills/email/evals/evals.json +196 -0
  31. package/skills/{email-sequence/SKILL.md → email/sequences.md} +2 -12
  32. package/skills/frontend-design/SKILL.md +9 -164
  33. package/skills/frontend-design/building.md +174 -0
  34. package/skills/frontend-design/design-md.md +298 -0
  35. package/skills/gh-stamp/SKILL.md +2 -2
  36. package/skills/marketing/SKILL.md +43 -0
  37. package/skills/marketing/churn-cancel-flows.md +153 -0
  38. package/skills/marketing/churn-dunning.md +83 -0
  39. package/skills/marketing/churn-prediction.md +61 -0
  40. package/skills/marketing/churn-prevention.md +109 -0
  41. package/skills/{competitor-alternatives/SKILL.md → marketing/competitor-alternatives.md} +1 -11
  42. package/skills/marketing/evals/evals.json +378 -0
  43. package/skills/{launch-strategy/SKILL.md → marketing/launch-strategy.md} +4 -13
  44. package/skills/{pricing-strategy/SKILL.md → marketing/pricing-strategy.md} +3 -15
  45. package/skills/{social-content/SKILL.md → marketing/social-content.md} +3 -10
  46. package/skills/plan-review/SKILL.md +41 -0
  47. package/skills/plan-review/ceo.md +333 -0
  48. package/skills/plan-review/eng.md +139 -0
  49. package/skills/{minimalist-review/SKILL.md → plan-review/minimalist.md} +0 -6
  50. package/skills/qa/SKILL.md +353 -0
  51. package/skills/qa/playwright.md +242 -0
  52. package/skills/retro/SKILL.md +234 -0
  53. package/skills/seo/SKILL.md +30 -0
  54. package/skills/{ai-seo/SKILL.md → seo/ai-seo.md} +4 -13
  55. package/skills/seo/evals/evals.json +234 -0
  56. package/skills/{llms-txt/SKILL.md → seo/llms-txt.md} +0 -10
  57. package/skills/{seo-audit/SKILL.md → seo/traditional.md} +3 -14
  58. package/skills/shopify/SKILL.md +41 -0
  59. package/skills/shopify/building.md +511 -0
  60. package/skills/shopify/listing.md +163 -0
  61. package/skills/whisper-cpp-transcribe/SKILL.md +55 -0
  62. package/skills/wrangler/SKILL.md +138 -0
  63. package/src/chat/engine.ts +1 -0
  64. package/src/cli/index.ts +124 -38
  65. package/src/cli/job.ts +160 -43
  66. package/src/core/runner.ts +74 -15
  67. package/src/db/migrations/013_jobs_model.ts +7 -0
  68. package/src/db/models/job.ts +40 -13
  69. package/src/mcp/server.ts +202 -37
  70. package/src/mcp/tools.ts +116 -29
  71. package/src/types/audit.ts +1 -0
  72. package/src/types/job.ts +2 -0
  73. package/skills/ai-seo/evals/evals.json +0 -90
  74. package/skills/churn-prevention/SKILL.md +0 -424
  75. package/skills/churn-prevention/evals/evals.json +0 -93
  76. package/skills/cold-email/evals/evals.json +0 -94
  77. package/skills/competitor-alternatives/evals/evals.json +0 -93
  78. package/skills/copy-editing/evals/evals.json +0 -89
  79. package/skills/copy-editing/references/plain-english-alternatives.md +0 -394
  80. package/skills/email-sequence/evals/evals.json +0 -93
  81. package/skills/launch-strategy/evals/evals.json +0 -91
  82. package/skills/onboarding-cro/evals/evals.json +0 -92
  83. package/skills/page-cro/evals/evals.json +0 -111
  84. package/skills/seo-audit/evals/evals.json +0 -136
  85. package/skills/signup-flow-cro/evals/evals.json +0 -88
  86. package/skills/social-content/evals/evals.json +0 -92
  87. /package/skills/{onboarding-cro/references/experiments.md → cro/references/onboarding-experiments.md} +0 -0
  88. /package/skills/{page-cro/references/experiments.md → cro/references/page-experiments.md} +0 -0
  89. /package/skills/{cold-email → email}/references/benchmarks.md +0 -0
  90. /package/skills/{email-sequence → email}/references/copy-guidelines.md +0 -0
  91. /package/skills/{email-sequence → email}/references/email-types.md +0 -0
  92. /package/skills/{cold-email → email}/references/follow-up-sequences.md +0 -0
  93. /package/skills/{cold-email → email}/references/frameworks.md +0 -0
  94. /package/skills/{cold-email → email}/references/personalization.md +0 -0
  95. /package/skills/{email-sequence → email}/references/sequence-templates.md +0 -0
  96. /package/skills/{cold-email → email}/references/subject-lines.md +0 -0
  97. /package/skills/{churn-prevention → marketing}/references/cancel-flow-patterns.md +0 -0
  98. /package/skills/{competitor-alternatives → marketing}/references/content-architecture.md +0 -0
  99. /package/skills/{churn-prevention → marketing}/references/dunning-playbook.md +0 -0
  100. /package/skills/{social-content → marketing}/references/platforms.md +0 -0
  101. /package/skills/{social-content → marketing}/references/post-templates.md +0 -0
  102. /package/skills/{social-content → marketing}/references/reverse-engineering.md +0 -0
  103. /package/skills/{competitor-alternatives → marketing}/references/templates.md +0 -0
  104. /package/skills/{seo-audit → seo}/references/ai-writing-detection.md +0 -0
  105. /package/skills/{ai-seo → seo}/references/content-patterns.md +0 -0
  106. /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
+ [![npm version](https://img.shields.io/npm/v/niahere.svg)](https://www.npmjs.com/package/niahere)
4
+ [![npm downloads](https://img.shields.io/npm/dm/niahere.svg)](https://www.npmjs.com/package/niahere)
5
+ [![license](https://img.shields.io/npm/l/niahere.svg)](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.58",
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.74",
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 reusable agent skills that are framework-agnostic and easy to maintain. Use when building a new skill or updating an existing one with clear triggers, workflows, reusable resources, and validation steps.
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
- ## Agent Skill Creator
8
+ # Skill Creator
7
9
 
8
- Create skills that any AI assistant can follow, not just one vendor or runtime.
10
+ ## Before Starting
9
11
 
10
- ## Default Location
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
- New skills go in `~/.niahere/skills/<skill-name>/SKILL.md`. This directory is auto-scanned.
13
- When updating an existing skill, edit it in place wherever it lives.
16
+ ## Step 1: Write the Description
14
17
 
15
- ## Goals
18
+ The description determines activation. Most important thing you write.
16
19
 
17
- - Make the skill portable across tools and agent frameworks.
18
- - Keep instructions concise, explicit, and testable.
19
- - Prefer reusable artifacts (scripts, references, templates) over repeating long instructions.
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
- ## Workflow
22
-
23
- ### 1. Clarify scope with concrete examples
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
- Avoid:
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
- ### 6. Validate before shipping
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
- Run this checklist:
35
+ For detailed structure patterns with examples, see [references/patterns.md](references/patterns.md).
87
36
 
88
- - Metadata is clear and triggerable.
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
- ### 7. Iterate from real usage
39
+ **Process in SKILL.md, knowledge in references.** Keep body under 500 lines.
96
40
 
97
- After first use:
98
- - note where the agent hesitated or failed
99
- - tighten trigger text and decision points
100
- - move repeated logic into scripts/templates
101
- - keep the file lean as capability grows
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
- ## Portable Skill Template
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
- Use this starter when creating a new skill:
58
+ References one level deep only. Every reference linked from SKILL.md with "when to read" context.
106
59
 
107
- ```markdown
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
- ## Overview
114
- One short paragraph on scope and outcome.
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
- ## Quick Start
117
- 1. First action.
118
- 2. Main execution path.
119
- 3. Output requirements.
66
+ ## Step 5: Validate
120
67
 
121
- ## Decision Points
122
- - If condition A: do X.
123
- - If condition B: do Y.
124
- - If blocked: fallback path.
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
- ## Resources
127
- - `scripts/...` for deterministic tasks.
128
- - `references/...` for detailed docs.
129
- - `assets/...` for templates and boilerplate.
75
+ ## Step 6: Iterate
130
76
 
131
- ## Validation
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 an Existing Skill
79
+ ## Editing Existing Skills
136
80
 
137
- When updating a skill:
138
- - preserve existing behavior unless intentionally changing it
139
- - document new triggers in description
140
- - remove stale instructions immediately
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
- ## Output Standard
86
+ ## References
144
87
 
145
- A finished skill should be:
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