@techwavedev/agi-agent-kit 1.1.7 → 1.2.1

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.

Potentially problematic release.


This version of @techwavedev/agi-agent-kit might be problematic. Click here for more details.

Files changed (111) hide show
  1. package/CHANGELOG.md +82 -1
  2. package/README.md +190 -12
  3. package/bin/init.js +30 -2
  4. package/package.json +6 -3
  5. package/templates/base/AGENTS.md +54 -23
  6. package/templates/base/README.md +325 -0
  7. package/templates/base/directives/memory_integration.md +95 -0
  8. package/templates/base/execution/memory_manager.py +309 -0
  9. package/templates/base/execution/session_boot.py +218 -0
  10. package/templates/base/execution/session_init.py +320 -0
  11. package/templates/base/skill-creator/SKILL_skillcreator.md +23 -36
  12. package/templates/base/skill-creator/scripts/init_skill.py +18 -135
  13. package/templates/skills/ec/README.md +31 -0
  14. package/templates/skills/ec/aws/SKILL.md +1020 -0
  15. package/templates/skills/ec/aws/defaults.yaml +13 -0
  16. package/templates/skills/ec/aws/references/common_patterns.md +80 -0
  17. package/templates/skills/ec/aws/references/mcp_servers.md +98 -0
  18. package/templates/skills/ec/aws-terraform/SKILL.md +349 -0
  19. package/templates/skills/ec/aws-terraform/references/best_practices.md +394 -0
  20. package/templates/skills/ec/aws-terraform/references/checkov_reference.md +337 -0
  21. package/templates/skills/ec/aws-terraform/scripts/configure_mcp.py +150 -0
  22. package/templates/skills/ec/confluent-kafka/SKILL.md +655 -0
  23. package/templates/skills/ec/confluent-kafka/references/ansible_playbooks.md +792 -0
  24. package/templates/skills/ec/confluent-kafka/references/ec_deployment.md +579 -0
  25. package/templates/skills/ec/confluent-kafka/references/kraft_migration.md +490 -0
  26. package/templates/skills/ec/confluent-kafka/references/troubleshooting.md +778 -0
  27. package/templates/skills/ec/confluent-kafka/references/upgrade_7x_to_8x.md +488 -0
  28. package/templates/skills/ec/confluent-kafka/scripts/kafka_health_check.py +435 -0
  29. package/templates/skills/ec/confluent-kafka/scripts/upgrade_preflight.py +568 -0
  30. package/templates/skills/ec/confluent-kafka/scripts/validate_config.py +455 -0
  31. package/templates/skills/ec/consul/SKILL.md +427 -0
  32. package/templates/skills/ec/consul/references/acl_setup.md +168 -0
  33. package/templates/skills/ec/consul/references/ha_config.md +196 -0
  34. package/templates/skills/ec/consul/references/troubleshooting.md +267 -0
  35. package/templates/skills/ec/consul/references/upgrades.md +213 -0
  36. package/templates/skills/ec/consul/scripts/consul_health_report.py +530 -0
  37. package/templates/skills/ec/consul/scripts/consul_status.py +264 -0
  38. package/templates/skills/ec/consul/scripts/generate_values.py +170 -0
  39. package/templates/skills/ec/documentation/SKILL.md +351 -0
  40. package/templates/skills/ec/documentation/references/best_practices.md +201 -0
  41. package/templates/skills/ec/documentation/scripts/analyze_code.py +307 -0
  42. package/templates/skills/ec/documentation/scripts/detect_changes.py +460 -0
  43. package/templates/skills/ec/documentation/scripts/generate_changelog.py +312 -0
  44. package/templates/skills/ec/documentation/scripts/sync_docs.py +272 -0
  45. package/templates/skills/ec/documentation/scripts/update_skill_docs.py +366 -0
  46. package/templates/skills/ec/gitlab/SKILL.md +529 -0
  47. package/templates/skills/ec/gitlab/references/agent_installation.md +416 -0
  48. package/templates/skills/ec/gitlab/references/api_reference.md +508 -0
  49. package/templates/skills/ec/gitlab/references/gitops_flux.md +465 -0
  50. package/templates/skills/ec/gitlab/references/troubleshooting.md +518 -0
  51. package/templates/skills/ec/gitlab/scripts/generate_agent_values.py +329 -0
  52. package/templates/skills/ec/gitlab/scripts/gitlab_agent_status.py +414 -0
  53. package/templates/skills/ec/jira/SKILL.md +484 -0
  54. package/templates/skills/ec/jira/references/jql_reference.md +148 -0
  55. package/templates/skills/ec/jira/scripts/add_comment.py +91 -0
  56. package/templates/skills/ec/jira/scripts/bulk_log_work.py +124 -0
  57. package/templates/skills/ec/jira/scripts/create_ticket.py +162 -0
  58. package/templates/skills/ec/jira/scripts/get_ticket.py +191 -0
  59. package/templates/skills/ec/jira/scripts/jira_client.py +383 -0
  60. package/templates/skills/ec/jira/scripts/log_work.py +154 -0
  61. package/templates/skills/ec/jira/scripts/search_tickets.py +104 -0
  62. package/templates/skills/ec/jira/scripts/update_comment.py +67 -0
  63. package/templates/skills/ec/jira/scripts/update_ticket.py +161 -0
  64. package/templates/skills/ec/karpenter/SKILL.md +301 -0
  65. package/templates/skills/ec/karpenter/references/ec2nodeclasses.md +421 -0
  66. package/templates/skills/ec/karpenter/references/migration.md +396 -0
  67. package/templates/skills/ec/karpenter/references/nodepools.md +400 -0
  68. package/templates/skills/ec/karpenter/references/troubleshooting.md +359 -0
  69. package/templates/skills/ec/karpenter/scripts/generate_ec2nodeclass.py +187 -0
  70. package/templates/skills/ec/karpenter/scripts/generate_nodepool.py +245 -0
  71. package/templates/skills/ec/karpenter/scripts/karpenter_status.py +359 -0
  72. package/templates/skills/ec/opensearch/SKILL.md +720 -0
  73. package/templates/skills/ec/opensearch/references/ml_neural_search.md +576 -0
  74. package/templates/skills/ec/opensearch/references/operator.md +532 -0
  75. package/templates/skills/ec/opensearch/references/query_dsl.md +532 -0
  76. package/templates/skills/ec/opensearch/scripts/configure_mcp.py +148 -0
  77. package/templates/skills/ec/victoriametrics/SKILL.md +598 -0
  78. package/templates/skills/ec/victoriametrics/references/kubernetes.md +531 -0
  79. package/templates/skills/ec/victoriametrics/references/prometheus_migration.md +333 -0
  80. package/templates/skills/ec/victoriametrics/references/troubleshooting.md +442 -0
  81. package/templates/skills/knowledge/SKILLS_CATALOG.md +274 -4
  82. package/templates/skills/knowledge/intelligent-routing/SKILL.md +237 -164
  83. package/templates/skills/knowledge/parallel-agents/SKILL.md +345 -73
  84. package/templates/skills/knowledge/plugin-discovery/SKILL.md +582 -0
  85. package/templates/skills/knowledge/plugin-discovery/scripts/platform_setup.py +1083 -0
  86. package/templates/skills/knowledge/design-md/README.md +0 -34
  87. package/templates/skills/knowledge/design-md/SKILL.md +0 -193
  88. package/templates/skills/knowledge/design-md/examples/DESIGN.md +0 -154
  89. package/templates/skills/knowledge/notebooklm-mcp/SKILL.md +0 -71
  90. package/templates/skills/knowledge/notebooklm-mcp/assets/example_asset.txt +0 -24
  91. package/templates/skills/knowledge/notebooklm-mcp/references/api_reference.md +0 -34
  92. package/templates/skills/knowledge/notebooklm-mcp/scripts/example.py +0 -19
  93. package/templates/skills/knowledge/react-components/README.md +0 -36
  94. package/templates/skills/knowledge/react-components/SKILL.md +0 -53
  95. package/templates/skills/knowledge/react-components/examples/gold-standard-card.tsx +0 -80
  96. package/templates/skills/knowledge/react-components/package-lock.json +0 -231
  97. package/templates/skills/knowledge/react-components/package.json +0 -16
  98. package/templates/skills/knowledge/react-components/resources/architecture-checklist.md +0 -15
  99. package/templates/skills/knowledge/react-components/resources/component-template.tsx +0 -37
  100. package/templates/skills/knowledge/react-components/resources/stitch-api-reference.md +0 -14
  101. package/templates/skills/knowledge/react-components/resources/style-guide.json +0 -27
  102. package/templates/skills/knowledge/react-components/scripts/fetch-stitch.sh +0 -30
  103. package/templates/skills/knowledge/react-components/scripts/validate.js +0 -68
  104. package/templates/skills/knowledge/self-update/SKILL.md +0 -60
  105. package/templates/skills/knowledge/self-update/scripts/update_kit.py +0 -103
  106. package/templates/skills/knowledge/stitch-loop/README.md +0 -54
  107. package/templates/skills/knowledge/stitch-loop/SKILL.md +0 -235
  108. package/templates/skills/knowledge/stitch-loop/examples/SITE.md +0 -73
  109. package/templates/skills/knowledge/stitch-loop/examples/next-prompt.md +0 -25
  110. package/templates/skills/knowledge/stitch-loop/resources/baton-schema.md +0 -61
  111. package/templates/skills/knowledge/stitch-loop/resources/site-template.md +0 -104
@@ -0,0 +1,320 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ Script: session_init.py
4
+ Purpose: Bootstrap script for AI agent sessions. Checks prerequisites and
5
+ initializes Qdrant collections with correct dimensions for the
6
+ configured embedding provider (defaults to Ollama/768d).
7
+
8
+ Usage:
9
+ # Full initialization (check + create collections)
10
+ python3 execution/session_init.py
11
+
12
+ # Check only (no collection creation)
13
+ python3 execution/session_init.py --check-only
14
+
15
+ # Force re-initialization
16
+ python3 execution/session_init.py --force
17
+
18
+ Environment Variables:
19
+ EMBEDDING_PROVIDER - "ollama" (default), "openai", or "bedrock"
20
+ OLLAMA_URL - Ollama server URL (default: http://localhost:11434)
21
+ QDRANT_URL - Qdrant server URL (default: http://localhost:6333)
22
+
23
+ Exit Codes:
24
+ 0 - Success (all systems ready)
25
+ 1 - Partial success (some checks failed but non-critical)
26
+ 2 - Critical failure (Qdrant or embeddings not available)
27
+ """
28
+
29
+ import argparse
30
+ import json
31
+ import os
32
+ import sys
33
+ from urllib.request import Request, urlopen
34
+ from urllib.error import URLError, HTTPError
35
+
36
+ # Resolve path to qdrant-memory scripts
37
+ SKILL_SCRIPTS_DIR = os.path.join(
38
+ os.path.dirname(os.path.dirname(os.path.abspath(__file__))),
39
+ "skills",
40
+ "qdrant-memory",
41
+ "scripts",
42
+ )
43
+ sys.path.insert(0, SKILL_SCRIPTS_DIR)
44
+
45
+ from embedding_utils import (
46
+ check_embedding_service,
47
+ get_embedding_dimension,
48
+ EMBEDDING_PROVIDER,
49
+ EMBEDDING_MODEL,
50
+ )
51
+ from init_collection import create_collection, create_payload_index
52
+
53
+ # Configuration
54
+ QDRANT_URL = os.environ.get("QDRANT_URL", "http://localhost:6333")
55
+ COLLECTIONS = ["agent_memory", "semantic_cache"]
56
+
57
+
58
+ def check_qdrant() -> dict:
59
+ """Check if Qdrant is running and accessible."""
60
+ try:
61
+ req = Request(f"{QDRANT_URL}/collections", method="GET")
62
+ with urlopen(req, timeout=10) as response:
63
+ data = json.loads(response.read().decode())
64
+ existing = [
65
+ c["name"] for c in data.get("result", {}).get("collections", [])
66
+ ]
67
+ return {"status": "ok", "url": QDRANT_URL, "existing_collections": existing}
68
+ except URLError as e:
69
+ return {
70
+ "status": "error",
71
+ "url": QDRANT_URL,
72
+ "message": str(e),
73
+ "fix": "docker run -d -p 6333:6333 -p 6334:6334 -v qdrant_storage:/qdrant/storage qdrant/qdrant",
74
+ }
75
+
76
+
77
+ def check_ollama() -> dict:
78
+ """Check if Ollama is running and has the embedding model."""
79
+ embed_status = check_embedding_service()
80
+
81
+ if embed_status.get("status") == "ok":
82
+ return embed_status
83
+
84
+ if embed_status.get("status") == "missing_model":
85
+ embed_status["fix"] = f"ollama pull {EMBEDDING_MODEL}"
86
+ return embed_status
87
+
88
+ if embed_status.get("status") == "connection_error":
89
+ embed_status["fix"] = "Install and start Ollama: https://ollama.ai"
90
+ return embed_status
91
+
92
+ return embed_status
93
+
94
+
95
+ def init_collections(force: bool = False) -> list:
96
+ """Initialize required Qdrant collections with correct dimensions."""
97
+ dimension = get_embedding_dimension()
98
+ results = []
99
+
100
+ for collection_name in COLLECTIONS:
101
+ # Check if collection already exists
102
+ try:
103
+ req = Request(f"{QDRANT_URL}/collections/{collection_name}", method="GET")
104
+ with urlopen(req, timeout=10) as response:
105
+ data = json.loads(response.read().decode())
106
+ existing_dim = (
107
+ data.get("result", {})
108
+ .get("config", {})
109
+ .get("params", {})
110
+ .get("vectors", {})
111
+ .get("size")
112
+ )
113
+
114
+ if existing_dim and existing_dim != dimension and force:
115
+ # Delete and recreate with correct dimensions
116
+ del_req = Request(
117
+ f"{QDRANT_URL}/collections/{collection_name}", method="DELETE"
118
+ )
119
+ urlopen(del_req, timeout=10)
120
+ print(
121
+ f" Deleted {collection_name} (was {existing_dim}d, need {dimension}d)"
122
+ )
123
+ elif existing_dim == dimension:
124
+ results.append(
125
+ {
126
+ "collection": collection_name,
127
+ "status": "exists",
128
+ "dimension": existing_dim,
129
+ }
130
+ )
131
+ continue
132
+ elif existing_dim and existing_dim != dimension and not force:
133
+ results.append(
134
+ {
135
+ "collection": collection_name,
136
+ "status": "dimension_mismatch",
137
+ "current": existing_dim,
138
+ "expected": dimension,
139
+ "fix": f"Run with --force to recreate with {dimension}d",
140
+ }
141
+ )
142
+ continue
143
+ except HTTPError as e:
144
+ if e.code != 404:
145
+ results.append(
146
+ {
147
+ "collection": collection_name,
148
+ "status": "error",
149
+ "message": str(e),
150
+ }
151
+ )
152
+ continue
153
+ except URLError:
154
+ results.append(
155
+ {
156
+ "collection": collection_name,
157
+ "status": "error",
158
+ "message": "Cannot connect to Qdrant",
159
+ }
160
+ )
161
+ continue
162
+
163
+ # Create collection
164
+ try:
165
+ create_result = create_collection(
166
+ QDRANT_URL, collection_name, dimension, "cosine"
167
+ )
168
+
169
+ # Create standard payload indexes
170
+ indexes = [
171
+ ("type", "keyword"),
172
+ ("project", "keyword"),
173
+ ("timestamp", "datetime"),
174
+ ("tags", "keyword"),
175
+ ("model", "keyword"),
176
+ ("token_count", "integer"),
177
+ ]
178
+
179
+ for field, field_type in indexes:
180
+ create_payload_index(QDRANT_URL, collection_name, field, field_type)
181
+
182
+ results.append(
183
+ {
184
+ "collection": collection_name,
185
+ "status": "created",
186
+ "dimension": dimension,
187
+ "indexes": len(indexes),
188
+ }
189
+ )
190
+ except Exception as e:
191
+ results.append(
192
+ {"collection": collection_name, "status": "error", "message": str(e)}
193
+ )
194
+
195
+ return results
196
+
197
+
198
+ def main():
199
+ parser = argparse.ArgumentParser(
200
+ description="Initialize AI agent session (Qdrant + Ollama check + collection setup)"
201
+ )
202
+ parser.add_argument(
203
+ "--check-only",
204
+ action="store_true",
205
+ help="Only check prerequisites, don't create collections",
206
+ )
207
+ parser.add_argument(
208
+ "--force",
209
+ action="store_true",
210
+ help="Force re-initialization (recreate collections)",
211
+ )
212
+ parser.add_argument(
213
+ "--json",
214
+ action="store_true",
215
+ help="Output as JSON only (no human-readable messages)",
216
+ )
217
+ args = parser.parse_args()
218
+
219
+ report = {
220
+ "provider": EMBEDDING_PROVIDER,
221
+ "model": EMBEDDING_MODEL,
222
+ "dimension": get_embedding_dimension(),
223
+ "qdrant": {},
224
+ "embeddings": {},
225
+ "collections": [],
226
+ "ready": False,
227
+ }
228
+
229
+ # Step 1: Check Qdrant
230
+ if not args.json:
231
+ print(f"Checking Qdrant at {QDRANT_URL}...")
232
+ qdrant_status = check_qdrant()
233
+ report["qdrant"] = qdrant_status
234
+
235
+ if qdrant_status["status"] != "ok":
236
+ if not args.json:
237
+ print(f" FAILED: {qdrant_status.get('message', 'Unknown error')}")
238
+ print(f" FIX: {qdrant_status.get('fix', 'Check Qdrant installation')}")
239
+ if args.json:
240
+ print(json.dumps(report, indent=2))
241
+ sys.exit(2)
242
+ else:
243
+ if not args.json:
244
+ print(f" OK. Collections: {qdrant_status.get('existing_collections', [])}")
245
+
246
+ # Step 2: Check embedding service
247
+ if not args.json:
248
+ print(f"Checking embedding service ({EMBEDDING_PROVIDER}/{EMBEDDING_MODEL})...")
249
+ embed_status = check_ollama()
250
+ report["embeddings"] = embed_status
251
+
252
+ if embed_status.get("status") != "ok":
253
+ if not args.json:
254
+ print(f" FAILED: {embed_status.get('message', 'Unknown error')}")
255
+ if embed_status.get("fix"):
256
+ print(f" FIX: {embed_status['fix']}")
257
+ if args.json:
258
+ print(json.dumps(report, indent=2))
259
+ sys.exit(2)
260
+ else:
261
+ if not args.json:
262
+ print(f" OK. Model: {EMBEDDING_MODEL} ({get_embedding_dimension()}d)")
263
+
264
+ # Step 3: Initialize collections
265
+ if not args.check_only:
266
+ if not args.json:
267
+ print(
268
+ f"Initializing collections (dimension={get_embedding_dimension()})..."
269
+ )
270
+ collection_results = init_collections(force=args.force)
271
+ report["collections"] = collection_results
272
+
273
+ for cr in collection_results:
274
+ if not args.json:
275
+ status = cr["status"]
276
+ name = cr["collection"]
277
+ if status == "created":
278
+ print(
279
+ f" CREATED: {name} ({cr['dimension']}d, {cr['indexes']} indexes)"
280
+ )
281
+ elif status == "exists":
282
+ print(f" EXISTS: {name} ({cr['dimension']}d)")
283
+ elif status == "dimension_mismatch":
284
+ print(
285
+ f" MISMATCH: {name} (current={cr['current']}d, expected={cr['expected']}d)"
286
+ )
287
+ print(f" FIX: {cr.get('fix', '')}")
288
+ else:
289
+ print(f" ERROR: {name} - {cr.get('message', '')}")
290
+ else:
291
+ if not args.json:
292
+ print("Skipping collection initialization (--check-only)")
293
+
294
+ # Final status
295
+ all_ok = qdrant_status["status"] == "ok" and embed_status.get("status") == "ok"
296
+
297
+ if not args.check_only:
298
+ all_ok = all_ok and all(
299
+ cr["status"] in ("created", "exists")
300
+ for cr in report.get("collections", [])
301
+ )
302
+
303
+ report["ready"] = all_ok
304
+
305
+ if not args.json:
306
+ if all_ok:
307
+ print(f"\nSession initialized. Memory system ready.")
308
+ print(f" Provider: {EMBEDDING_PROVIDER} ({EMBEDDING_MODEL})")
309
+ print(f" Dimension: {get_embedding_dimension()}")
310
+ print(f" Qdrant: {QDRANT_URL}")
311
+ else:
312
+ print(f"\nSession initialization incomplete. See errors above.")
313
+ else:
314
+ print(json.dumps(report, indent=2))
315
+
316
+ sys.exit(0 if all_ok else 1)
317
+
318
+
319
+ if __name__ == "__main__":
320
+ main()
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: skill-creator
3
- description: Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends the agent's capabilities with specialized knowledge, workflows, or tool integrations.
3
+ description: Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
4
4
  license: Complete terms in LICENSE.txt
5
5
  ---
6
6
 
@@ -10,9 +10,9 @@ This skill provides guidance for creating effective skills.
10
10
 
11
11
  ## About Skills
12
12
 
13
- Skills are modular, self-contained packages that extend the agent's capabilities by providing
13
+ Skills are modular, self-contained packages that extend Claude's capabilities by providing
14
14
  specialized knowledge, workflows, and tools. Think of them as "onboarding guides" for specific
15
- domains or tasks—they transform the agent from a general-purpose agent into a specialized agent
15
+ domains or tasks—they transform Claude from a general-purpose agent into a specialized agent
16
16
  equipped with procedural knowledge that no model can fully possess.
17
17
 
18
18
  ### What Skills Provide
@@ -26,9 +26,9 @@ equipped with procedural knowledge that no model can fully possess.
26
26
 
27
27
  ### Concise is Key
28
28
 
29
- The context window is a public good. Skills share the context window with everything else the agent needs: system prompt, conversation history, other Skills' metadata, and the actual user request.
29
+ The context window is a public good. Skills share the context window with everything else Claude needs: system prompt, conversation history, other Skills' metadata, and the actual user request.
30
30
 
31
- **Default assumption: the agent is already very smart.** Only add context the agent doesn't already have. Challenge each piece of information: "Does the agent really need this explanation?" and "Does this paragraph justify its token cost?"
31
+ **Default assumption: Claude is already very smart.** Only add context Claude doesn't already have. Challenge each piece of information: "Does Claude really need this explanation?" and "Does this paragraph justify its token cost?"
32
32
 
33
33
  Prefer concise examples over verbose explanations.
34
34
 
@@ -42,7 +42,7 @@ Match the level of specificity to the task's fragility and variability:
42
42
 
43
43
  **Low freedom (specific scripts, few parameters)**: Use when operations are fragile and error-prone, consistency is critical, or a specific sequence must be followed.
44
44
 
45
- Think of the agent as exploring a path: a narrow bridge with cliffs needs specific guardrails (low freedom), while an open field allows many routes (high freedom).
45
+ Think of Claude as exploring a path: a narrow bridge with cliffs needs specific guardrails (low freedom), while an open field allows many routes (high freedom).
46
46
 
47
47
  ### Anatomy of a Skill
48
48
 
@@ -65,7 +65,7 @@ skill-name/
65
65
 
66
66
  Every SKILL.md consists of:
67
67
 
68
- - **Frontmatter** (YAML): Contains `name` and `description` fields. These are the only fields that the agent reads to determine when the skill gets used, thus it is very important to be clear and comprehensive in describing what the skill is, and when it should be used.
68
+ - **Frontmatter** (YAML): Contains `name` and `description` fields. These are the only fields that Claude reads to determine when the skill gets used, thus it is very important to be clear and comprehensive in describing what the skill is, and when it should be used.
69
69
  - **Body** (Markdown): Instructions and guidance for using the skill. Only loaded AFTER the skill triggers (if at all).
70
70
 
71
71
  #### Bundled Resources (optional)
@@ -77,27 +77,27 @@ Executable code (Python/Bash/etc.) for tasks that require deterministic reliabil
77
77
  - **When to include**: When the same code is being rewritten repeatedly or deterministic reliability is needed
78
78
  - **Example**: `scripts/rotate_pdf.py` for PDF rotation tasks
79
79
  - **Benefits**: Token efficient, deterministic, may be executed without loading into context
80
- - **Note**: Scripts may still need to be read by the agent for patching or environment-specific adjustments
80
+ - **Note**: Scripts may still need to be read by Claude for patching or environment-specific adjustments
81
81
 
82
82
  ##### References (`references/`)
83
83
 
84
- Documentation and reference material intended to be loaded as needed into context to inform the agent's process and thinking.
84
+ Documentation and reference material intended to be loaded as needed into context to inform Claude's process and thinking.
85
85
 
86
- - **When to include**: For documentation that the agent should reference while working
86
+ - **When to include**: For documentation that Claude should reference while working
87
87
  - **Examples**: `references/finance.md` for financial schemas, `references/mnda.md` for company NDA template, `references/policies.md` for company policies, `references/api_docs.md` for API specifications
88
88
  - **Use cases**: Database schemas, API documentation, domain knowledge, company policies, detailed workflow guides
89
- - **Benefits**: Keeps SKILL.md lean, loaded only when the agent determines it's needed
89
+ - **Benefits**: Keeps SKILL.md lean, loaded only when Claude determines it's needed
90
90
  - **Best practice**: If files are large (>10k words), include grep search patterns in SKILL.md
91
91
  - **Avoid duplication**: Information should live in either SKILL.md or references files, not both. Prefer references files for detailed information unless it's truly core to the skill—this keeps SKILL.md lean while making information discoverable without hogging the context window. Keep only essential procedural instructions and workflow guidance in SKILL.md; move detailed reference material, schemas, and examples to references files.
92
92
 
93
93
  ##### Assets (`assets/`)
94
94
 
95
- Files not intended to be loaded into context, but rather used within the output the agent produces.
95
+ Files not intended to be loaded into context, but rather used within the output Claude produces.
96
96
 
97
97
  - **When to include**: When the skill needs files that will be used in the final output
98
98
  - **Examples**: `assets/logo.png` for brand assets, `assets/slides.pptx` for PowerPoint templates, `assets/frontend-template/` for HTML/React boilerplate, `assets/font.ttf` for typography
99
99
  - **Use cases**: Templates, images, icons, boilerplate code, fonts, sample documents that get copied or modified
100
- - **Benefits**: Separates output resources from documentation, enables the agent to use files without loading them into context
100
+ - **Benefits**: Separates output resources from documentation, enables Claude to use files without loading them into context
101
101
 
102
102
  #### What to Not Include in a Skill
103
103
 
@@ -117,7 +117,7 @@ Skills use a three-level loading system to manage context efficiently:
117
117
 
118
118
  1. **Metadata (name + description)** - Always in context (~100 words)
119
119
  2. **SKILL.md body** - When skill triggers (<5k words)
120
- 3. **Bundled resources** - As needed by the agent (Unlimited because scripts can be executed without reading into context window)
120
+ 3. **Bundled resources** - As needed by Claude (Unlimited because scripts can be executed without reading into context window)
121
121
 
122
122
  #### Progressive Disclosure Patterns
123
123
 
@@ -142,7 +142,7 @@ Extract text with pdfplumber:
142
142
  - **Examples**: See [EXAMPLES.md](EXAMPLES.md) for common patterns
143
143
  ```
144
144
 
145
- The agent loads FORMS.md, REFERENCE.md, or EXAMPLES.md only when needed.
145
+ Claude loads FORMS.md, REFERENCE.md, or EXAMPLES.md only when needed.
146
146
 
147
147
  **Pattern 2: Domain-specific organization**
148
148
 
@@ -158,7 +158,7 @@ bigquery-skill/
158
158
  └── marketing.md (campaigns, attribution)
159
159
  ```
160
160
 
161
- When a user asks about sales metrics, the agent only reads sales.md.
161
+ When a user asks about sales metrics, Claude only reads sales.md.
162
162
 
163
163
  Similarly, for skills supporting multiple frameworks or variants, organize by variant:
164
164
 
@@ -171,7 +171,7 @@ cloud-deploy/
171
171
  └── azure.md (Azure deployment patterns)
172
172
  ```
173
173
 
174
- When the user chooses AWS, the agent only reads aws.md.
174
+ When the user chooses AWS, Claude only reads aws.md.
175
175
 
176
176
  **Pattern 3: Conditional details**
177
177
 
@@ -192,12 +192,12 @@ For simple edits, modify the XML directly.
192
192
  **For OOXML details**: See [OOXML.md](OOXML.md)
193
193
  ```
194
194
 
195
- The agent reads REDLINING.md or OOXML.md only when the user needs those features.
195
+ Claude reads REDLINING.md or OOXML.md only when the user needs those features.
196
196
 
197
197
  **Important guidelines:**
198
198
 
199
199
  - **Avoid deeply nested references** - Keep references one level deep from SKILL.md. All reference files should link directly from SKILL.md.
200
- - **Structure longer reference files** - For files longer than 100 lines, include a table of contents at the top so the agent can see the full scope when previewing.
200
+ - **Structure longer reference files** - For files longer than 100 lines, include a table of contents at the top so Claude can see the full scope when previewing.
201
201
 
202
202
  ## Skill Creation Process
203
203
 
@@ -266,12 +266,6 @@ Usage:
266
266
 
267
267
  ```bash
268
268
  scripts/init_skill.py <skill-name> --path <output-directory>
269
-
270
- # Skip automatic catalog/docs updates
271
- scripts/init_skill.py <skill-name> --path <output-directory> --no-auto-update
272
-
273
- # Specify skills directory for catalog updates (if different from --path)
274
- scripts/init_skill.py <skill-name> --path <output-directory> --skills-dir skills/
275
269
  ```
276
270
 
277
271
  The script:
@@ -280,20 +274,16 @@ The script:
280
274
  - Generates a SKILL.md template with proper frontmatter and TODO placeholders
281
275
  - Creates example resource directories: `scripts/`, `references/`, and `assets/`
282
276
  - Adds example files in each directory that can be customized or deleted
283
- - **Auto-runs `update_catalog.py`** to regenerate `SKILLS_CATALOG.md` (default ON)
284
- - **Auto-runs `sync_docs.py`** to synchronize documentation (default ON, if documentation skill exists)
285
-
286
- > **Note:** Use `--no-auto-update` to skip automatic catalog and documentation updates.
287
277
 
288
278
  After initialization, customize or remove the generated SKILL.md and example files as needed.
289
279
 
290
280
  ### Step 4: Edit the Skill
291
281
 
292
- When editing the (newly-generated or existing) skill, remember that the skill is being created for another instance of the agent to use. Include information that would be beneficial and non-obvious to Claude. Consider what procedural knowledge, domain-specific details, or reusable assets would help another the agent instance execute these tasks more effectively.
282
+ When editing the (newly-generated or existing) skill, remember that the skill is being created for another instance of Claude to use. Include information that would be beneficial and non-obvious to Claude. Consider what procedural knowledge, domain-specific details, or reusable assets would help another Claude instance execute these tasks more effectively.
293
283
 
294
284
  #### Learn Proven Design Patterns
295
285
 
296
- Consult these helpful guides based on your skill's needs:
286
+ Refer to these helpful guides based on your skill's needs:
297
287
 
298
288
  - **Multi-step processes**: See references/workflows.md for sequential workflows and conditional logic
299
289
  - **Specific output formats or quality standards**: See references/output-patterns.md for template and example patterns
@@ -317,10 +307,10 @@ Any example files and directories not needed for the skill should be deleted. Th
317
307
  Write the YAML frontmatter with `name` and `description`:
318
308
 
319
309
  - `name`: The skill name
320
- - `description`: This is the primary triggering mechanism for your skill, and helps the agent understand when to use the skill.
310
+ - `description`: This is the primary triggering mechanism for your skill, and helps Claude understand when to use the skill.
321
311
  - Include both what the Skill does and specific triggers/contexts for when to use it.
322
312
  - Include all "when to use" information here - Not in the body. The body is only loaded after triggering, so "When to Use This Skill" sections in the body are not helpful to Claude.
323
- - Example description for a `docx` skill: "Comprehensive document creation, editing, and analysis with support for tracked changes, comments, formatting preservation, and text extraction. Use when the agent needs to work with professional documents (.docx files) for: (1) Creating new documents, (2) Modifying or editing content, (3) Working with tracked changes, (4) Adding comments, or any other document tasks"
313
+ - Example description for a `docx` skill: "Comprehensive document creation, editing, and analysis with support for tracked changes, comments, formatting preservation, and text extraction. Use when Claude needs to work with professional documents (.docx files) for: (1) Creating new documents, (2) Modifying or editing content, (3) Working with tracked changes, (4) Adding comments, or any other document tasks"
324
314
 
325
315
  Do not include any other fields in YAML frontmatter.
326
316
 
@@ -358,10 +348,7 @@ If validation fails, the script will report the errors and exit without creating
358
348
 
359
349
  **CRITICAL:** After any skill operation (create, modify, or delete), the Skills Catalog must be updated. This ensures all skills are discoverable and documented.
360
350
 
361
- > **For new skills:** `init_skill.py` now auto-runs catalog and documentation updates by default. Manual update is only needed when modifying or deleting existing skills.
362
-
363
351
  ```bash
364
- # Manual update (for modifications/deletions, or if --no-auto-update was used)
365
352
  scripts/update_catalog.py --skills-dir skills/
366
353
  ```
367
354