heraspec 0.1.14 → 0.1.15

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 (174) hide show
  1. package/LICENSE +187 -0
  2. package/README.md +94 -95
  3. package/bin/heraspec.js +195 -80
  4. package/bin/heraspec.js.map +2 -2
  5. package/dist/core/templates/skills/README.md +41 -38
  6. package/dist/core/templates/skills/campaign-plan/skill.md +76 -0
  7. package/dist/core/templates/skills/campaign-plan/skill.vi.md +76 -0
  8. package/dist/core/templates/skills/campaign-plan-skill.md +76 -0
  9. package/dist/core/templates/skills/campaign-plan-skill.vi.md +76 -0
  10. package/dist/core/templates/skills/code-review/skill.md +70 -0
  11. package/dist/core/templates/skills/code-review/skill.vi.md +70 -0
  12. package/dist/core/templates/skills/code-review-skill.md +70 -0
  13. package/dist/core/templates/skills/code-review-skill.vi.md +70 -0
  14. package/dist/core/templates/skills/content-creation/skill.md +69 -0
  15. package/dist/core/templates/skills/content-creation/skill.vi.md +69 -0
  16. package/dist/core/templates/skills/content-creation-skill.md +69 -0
  17. package/dist/core/templates/skills/content-creation-skill.vi.md +69 -0
  18. package/dist/core/templates/skills/content-optimization/skill.md +104 -0
  19. package/dist/core/templates/skills/debug/skill.md +69 -0
  20. package/dist/core/templates/skills/debug/skill.vi.md +69 -0
  21. package/dist/core/templates/skills/debug-skill.md +69 -0
  22. package/dist/core/templates/skills/debug-skill.vi.md +69 -0
  23. package/dist/core/templates/skills/deploy-documentation/skill.md +408 -0
  24. package/dist/core/templates/skills/design-system/knowledge/design-systems/airbnb/DESIGN.md +246 -0
  25. package/dist/core/templates/skills/design-system/knowledge/design-systems/airtable/DESIGN.md +89 -0
  26. package/dist/core/templates/skills/design-system/knowledge/design-systems/apple/DESIGN.md +313 -0
  27. package/dist/core/templates/skills/design-system/knowledge/design-systems/bmw/DESIGN.md +180 -0
  28. package/dist/core/templates/skills/design-system/knowledge/design-systems/cal/DESIGN.md +259 -0
  29. package/dist/core/templates/skills/design-system/knowledge/design-systems/claude/DESIGN.md +312 -0
  30. package/dist/core/templates/skills/design-system/knowledge/design-systems/clay/DESIGN.md +304 -0
  31. package/dist/core/templates/skills/design-system/knowledge/design-systems/clickhouse/DESIGN.md +281 -0
  32. package/dist/core/templates/skills/design-system/knowledge/design-systems/cohere/DESIGN.md +266 -0
  33. package/dist/core/templates/skills/design-system/knowledge/design-systems/coinbase/DESIGN.md +129 -0
  34. package/dist/core/templates/skills/design-system/knowledge/design-systems/composio/DESIGN.md +307 -0
  35. package/dist/core/templates/skills/design-system/knowledge/design-systems/cursor/DESIGN.md +309 -0
  36. package/dist/core/templates/skills/design-system/knowledge/design-systems/elevenlabs/DESIGN.md +265 -0
  37. package/dist/core/templates/skills/design-system/knowledge/design-systems/expo/DESIGN.md +281 -0
  38. package/dist/core/templates/skills/design-system/knowledge/design-systems/figma/DESIGN.md +220 -0
  39. package/dist/core/templates/skills/design-system/knowledge/design-systems/framer/DESIGN.md +246 -0
  40. package/dist/core/templates/skills/design-system/knowledge/design-systems/hashicorp/DESIGN.md +278 -0
  41. package/dist/core/templates/skills/design-system/knowledge/design-systems/ibm/DESIGN.md +332 -0
  42. package/dist/core/templates/skills/design-system/knowledge/design-systems/index.json +72 -0
  43. package/dist/core/templates/skills/design-system/knowledge/design-systems/intercom/DESIGN.md +146 -0
  44. package/dist/core/templates/skills/design-system/knowledge/design-systems/kraken/DESIGN.md +125 -0
  45. package/dist/core/templates/skills/design-system/knowledge/design-systems/linear.app/DESIGN.md +367 -0
  46. package/dist/core/templates/skills/design-system/knowledge/design-systems/lovable/DESIGN.md +298 -0
  47. package/dist/core/templates/skills/design-system/knowledge/design-systems/minimax/DESIGN.md +257 -0
  48. package/dist/core/templates/skills/design-system/knowledge/design-systems/mintlify/DESIGN.md +326 -0
  49. package/dist/core/templates/skills/design-system/knowledge/design-systems/miro/DESIGN.md +108 -0
  50. package/dist/core/templates/skills/design-system/knowledge/design-systems/mistral.ai/DESIGN.md +261 -0
  51. package/dist/core/templates/skills/design-system/knowledge/design-systems/mongodb/DESIGN.md +266 -0
  52. package/dist/core/templates/skills/design-system/knowledge/design-systems/notion/DESIGN.md +309 -0
  53. package/dist/core/templates/skills/design-system/knowledge/design-systems/nvidia/DESIGN.md +293 -0
  54. package/dist/core/templates/skills/design-system/knowledge/design-systems/ollama/DESIGN.md +267 -0
  55. package/dist/core/templates/skills/design-system/knowledge/design-systems/opencode.ai/DESIGN.md +281 -0
  56. package/dist/core/templates/skills/design-system/knowledge/design-systems/pinterest/DESIGN.md +230 -0
  57. package/dist/core/templates/skills/design-system/knowledge/design-systems/posthog/DESIGN.md +256 -0
  58. package/dist/core/templates/skills/design-system/knowledge/design-systems/raycast/DESIGN.md +268 -0
  59. package/dist/core/templates/skills/design-system/knowledge/design-systems/replicate/DESIGN.md +261 -0
  60. package/dist/core/templates/skills/design-system/knowledge/design-systems/resend/DESIGN.md +303 -0
  61. package/dist/core/templates/skills/design-system/knowledge/design-systems/revolut/DESIGN.md +185 -0
  62. package/dist/core/templates/skills/design-system/knowledge/design-systems/runwayml/DESIGN.md +244 -0
  63. package/dist/core/templates/skills/design-system/knowledge/design-systems/sanity/DESIGN.md +357 -0
  64. package/dist/core/templates/skills/design-system/knowledge/design-systems/sentry/DESIGN.md +262 -0
  65. package/dist/core/templates/skills/design-system/knowledge/design-systems/spacex/DESIGN.md +194 -0
  66. package/dist/core/templates/skills/design-system/knowledge/design-systems/spotify/DESIGN.md +246 -0
  67. package/dist/core/templates/skills/design-system/knowledge/design-systems/stripe/DESIGN.md +322 -0
  68. package/dist/core/templates/skills/design-system/knowledge/design-systems/supabase/DESIGN.md +255 -0
  69. package/dist/core/templates/skills/design-system/knowledge/design-systems/superhuman/DESIGN.md +252 -0
  70. package/dist/core/templates/skills/design-system/knowledge/design-systems/together.ai/DESIGN.md +263 -0
  71. package/dist/core/templates/skills/design-system/knowledge/design-systems/uber/DESIGN.md +295 -0
  72. package/dist/core/templates/skills/design-system/knowledge/design-systems/vercel/DESIGN.md +310 -0
  73. package/dist/core/templates/skills/design-system/knowledge/design-systems/voltagent/DESIGN.md +323 -0
  74. package/dist/core/templates/skills/design-system/knowledge/design-systems/warp/DESIGN.md +253 -0
  75. package/dist/core/templates/skills/design-system/knowledge/design-systems/webflow/DESIGN.md +92 -0
  76. package/dist/core/templates/skills/design-system/knowledge/design-systems/wise/DESIGN.md +173 -0
  77. package/dist/core/templates/skills/design-system/knowledge/design-systems/x.ai/DESIGN.md +257 -0
  78. package/dist/core/templates/skills/design-system/knowledge/design-systems/zapier/DESIGN.md +328 -0
  79. package/dist/core/templates/skills/design-system/skill.md +176 -0
  80. package/dist/core/templates/skills/documents/skill.md +104 -0
  81. package/dist/core/templates/skills/e2e-test/skill.md +119 -0
  82. package/dist/core/templates/skills/email-sequence/skill.md +68 -0
  83. package/dist/core/templates/skills/email-sequence/skill.vi.md +68 -0
  84. package/dist/core/templates/skills/email-sequence-skill.md +68 -0
  85. package/dist/core/templates/skills/email-sequence-skill.vi.md +68 -0
  86. package/dist/core/templates/skills/git-embed/skill.md +57 -0
  87. package/dist/core/templates/skills/integration-test/skill.md +118 -0
  88. package/dist/core/templates/skills/knowledge/README.md +63 -63
  89. package/dist/core/templates/skills/knowledge/design-systems/index.json +72 -72
  90. package/dist/core/templates/skills/knowledge/frameworks/php/codeigniter/rise-cms/profile.json +27 -27
  91. package/dist/core/templates/skills/knowledge/frameworks/php/codeigniter/rise-cms/structure.md +137 -137
  92. package/dist/core/templates/skills/knowledge/frameworks/php/laravel/botble/profile.json +39 -39
  93. package/dist/core/templates/skills/knowledge/frameworks/php/laravel/botble/structure.md +207 -207
  94. package/dist/core/templates/skills/knowledge/frameworks/php/wordpress/core/profile.json +51 -51
  95. package/dist/core/templates/skills/knowledge/frameworks/php/wordpress/core/structure.md +369 -369
  96. package/dist/core/templates/skills/knowledge/index.json +65 -65
  97. package/dist/core/templates/skills/perfex-module/module-codebase/skill.md +110 -0
  98. package/dist/core/templates/skills/project-memory/skill.md +222 -0
  99. package/dist/core/templates/skills/project-memory/skill.vi.md +223 -0
  100. package/dist/core/templates/skills/seo-audit/skill.md +75 -0
  101. package/dist/core/templates/skills/seo-audit/skill.vi.md +75 -0
  102. package/dist/core/templates/skills/seo-audit-skill.md +75 -0
  103. package/dist/core/templates/skills/seo-audit-skill.vi.md +75 -0
  104. package/dist/core/templates/skills/smart-explore/skill.md +141 -0
  105. package/dist/core/templates/skills/sourcecode-analyzer/skill.md +210 -0
  106. package/dist/core/templates/skills/sourcecode-analyzer/skill.vi.md +210 -0
  107. package/dist/core/templates/skills/spec-writer/skill.md +61 -0
  108. package/dist/core/templates/skills/spec-writer/skill.vi.md +61 -0
  109. package/dist/core/templates/skills/spec-writer-skill.md +61 -0
  110. package/dist/core/templates/skills/spec-writer-skill.vi.md +61 -0
  111. package/dist/core/templates/skills/sql-queries/skill.md +67 -0
  112. package/dist/core/templates/skills/sql-queries/skill.vi.md +67 -0
  113. package/dist/core/templates/skills/sql-queries-skill.md +67 -0
  114. package/dist/core/templates/skills/sql-queries-skill.vi.md +67 -0
  115. package/dist/core/templates/skills/suggestion/skill.md +118 -0
  116. package/dist/core/templates/skills/system-design/skill.md +70 -0
  117. package/dist/core/templates/skills/system-design/skill.vi.md +70 -0
  118. package/dist/core/templates/skills/system-design-skill.md +70 -0
  119. package/dist/core/templates/skills/system-design-skill.vi.md +70 -0
  120. package/dist/core/templates/skills/tech-debt/skill.md +70 -0
  121. package/dist/core/templates/skills/tech-debt/skill.vi.md +70 -0
  122. package/dist/core/templates/skills/tech-debt-skill.md +70 -0
  123. package/dist/core/templates/skills/tech-debt-skill.vi.md +70 -0
  124. package/dist/core/templates/skills/ui-ux/data/charts.csv +26 -0
  125. package/dist/core/templates/skills/ui-ux/data/colors.csv +97 -0
  126. package/dist/core/templates/skills/ui-ux/data/design-systems.csv +54 -0
  127. package/dist/core/templates/skills/ui-ux/data/landing.csv +31 -0
  128. package/dist/core/templates/skills/ui-ux/data/pages-proposed.csv +22 -0
  129. package/dist/core/templates/skills/ui-ux/data/pages.csv +10 -0
  130. package/dist/core/templates/skills/ui-ux/data/products.csv +97 -0
  131. package/dist/core/templates/skills/ui-ux/data/prompts.csv +24 -0
  132. package/dist/core/templates/skills/ui-ux/data/stacks/flutter.csv +53 -0
  133. package/dist/core/templates/skills/ui-ux/data/stacks/html-tailwind.csv +56 -0
  134. package/dist/core/templates/skills/ui-ux/data/stacks/nextjs.csv +53 -0
  135. package/dist/core/templates/skills/ui-ux/data/stacks/react-native.csv +52 -0
  136. package/dist/core/templates/skills/ui-ux/data/stacks/react.csv +54 -0
  137. package/dist/core/templates/skills/ui-ux/data/stacks/svelte.csv +54 -0
  138. package/dist/core/templates/skills/ui-ux/data/stacks/swiftui.csv +51 -0
  139. package/dist/core/templates/skills/ui-ux/data/stacks/vue.csv +50 -0
  140. package/dist/core/templates/skills/ui-ux/data/styles.csv +59 -0
  141. package/dist/core/templates/skills/ui-ux/data/typography.csv +58 -0
  142. package/dist/core/templates/skills/ui-ux/data/ux-guidelines.csv +100 -0
  143. package/dist/core/templates/skills/ui-ux/scripts/CODE_EXPLANATION.md +394 -0
  144. package/dist/core/templates/skills/ui-ux/scripts/SEARCH_ALGORITHMS_COMPARISON.md +421 -0
  145. package/dist/core/templates/skills/ui-ux/scripts/SEARCH_MODES_GUIDE.md +238 -0
  146. package/dist/core/templates/skills/ui-ux/scripts/core.py +391 -0
  147. package/dist/core/templates/skills/ui-ux/scripts/search.py +73 -0
  148. package/dist/core/templates/skills/ui-ux/skill.md +595 -0
  149. package/dist/core/templates/skills/ui-ux/templates/accessibility-checklist.md +40 -0
  150. package/dist/core/templates/skills/ui-ux/templates/example-prompt-full-theme.md +333 -0
  151. package/dist/core/templates/skills/ui-ux/templates/page-types-guide.md +338 -0
  152. package/dist/core/templates/skills/ui-ux/templates/pages-proposed-summary.md +273 -0
  153. package/dist/core/templates/skills/ui-ux/templates/pre-delivery-checklist.md +42 -0
  154. package/dist/core/templates/skills/ui-ux/templates/prompt-template-full-theme.md +313 -0
  155. package/dist/core/templates/skills/ui-ux/templates/responsive-design.md +40 -0
  156. package/dist/core/templates/skills/unit-test/skill.md +111 -0
  157. package/dist/core/templates/skills/wordpress/plugin-check/skill.md +151 -0
  158. package/dist/core/templates/skills/wordpress/plugin-directory/skill.md +396 -0
  159. package/dist/core/templates/skills/wordpress/plugin-standard/skill.md +100 -0
  160. package/dist/core/templates/skills/wordpress/plugin-standard/templates/admin-dashboard.php +47 -0
  161. package/dist/core/templates/skills/wordpress/plugin-standard/templates/admin-settings.php +60 -0
  162. package/dist/core/templates/skills/wordpress/plugin-standard/templates/assets/admin-css.css +22 -0
  163. package/dist/core/templates/skills/wordpress/plugin-standard/templates/assets/admin-js.js +15 -0
  164. package/dist/core/templates/skills/wordpress/plugin-standard/templates/plugin-main.php +169 -0
  165. package/dist/core/templates/skills/wordpress/plugin-standard/templates/readme.txt +41 -0
  166. package/dist/core/templates/skills/wordpress/plugin-standard/templates/uninstall.php +21 -0
  167. package/dist/core/templates/skills/wordpress/ux-element/skill.md +83 -0
  168. package/dist/core/templates/skills/wordpress/ux-element/templates/Controller.php +50 -0
  169. package/dist/core/templates/skills/wordpress/ux-element/templates/Shortcode.php +23 -0
  170. package/dist/core/templates/skills/wordpress/ux-element/templates/Template.html +20 -0
  171. package/dist/core/templates/skills/wordpress/ux-element/templates/Thumbnail.svg +8 -0
  172. package/dist/core/templates/skills/wordpress/ux-element/templates/View.php +21 -0
  173. package/dist/index.js +195 -79
  174. package/package.json +1 -1
@@ -0,0 +1,57 @@
1
+ # Skill: Git Embed
2
+
3
+ ## Purpose
4
+
5
+ This skill establishes a nested Git repository structure (Monorepo) where the outer (parent) repository physically tracks and stores the source code of an inner (child) repository, without using the standard Git Submodule mechanism. This allows the child repository to retain its own `.git` directory for independent committing and pushing.
6
+
7
+ ## When to Use
8
+
9
+ - When migrating an existing Git repository to be embedded within a parent Monorepo.
10
+ - When the parent repository needs full direct physical access to the child's source files.
11
+ - When you need to avoid "empty folder" issues caused by standard Git submodules during cloning.
12
+ - When you want to commit and push independently from both the parent root and the child root.
13
+
14
+ ## Step-by-Step Process
15
+
16
+ ### Step 1: Remove Submodule References (If Any)
17
+ - Ensure the inner repository is not tracked as a submodule.
18
+ - Run `git rm -r --cached <child-folder>` from the parent root.
19
+ - Remove `.gitmodules` if it exists: `rm .gitmodules` and `git add .gitmodules` (if tracked).
20
+
21
+ ### Step 2: Temporary `.git` Relocation
22
+ - Move the inner repository's `.git` directory out of the way to prevent Git from treating it as an embedded repo.
23
+ - Run `mv <child-folder>/.git /tmp/<child-name>_git_bak`.
24
+
25
+ ### Step 3: Embed Source Code into Parent
26
+ - Add the inner folder directly to the parent repository.
27
+ - Run `git add <child-folder>/`.
28
+ - Commit the changes: `git commit -m "Embed full source of <child-name> independent of submodule"`.
29
+
30
+ ### Step 4: Restore Independent `.git`
31
+ - Move the inner repository's `.git` directory back to its original location.
32
+ - Run `mv /tmp/<child-name>_git_bak <child-folder>/.git`.
33
+
34
+ ### Step 5: Verification
35
+ - Run `git status` in the parent directory to ensure no submodule links are shown.
36
+ - Navigate into `<child-folder>` and run `git status` to verify the independent repository tracking is intact.
37
+
38
+ ## Required Input
39
+
40
+ - **Child folder path**: The relative path to the nested repository.
41
+ - **Child name**: A short identifier used for the backup directory.
42
+
43
+ ## Expected Output
44
+
45
+ - The parent's remote repository will contain all physical files natively without gitlinks.
46
+ - The child folder will retain its `.git` folder for completely independent repository operations.
47
+
48
+ ## Tone & Rules
49
+
50
+ ### Git Rules
51
+ - The child folder's `.gitignore` MUST be preserved, as the parent git will natively respect `.gitignore` rules in subdirectories.
52
+ - Ensure all uncommitted changes in the parent repo are stashed or committed before starting.
53
+
54
+ ### Limitations
55
+ - ❌ DO NOT use `git submodule add` under any circumstances for this skill.
56
+ - ❌ DO NOT delete the inner `.git` folder permanently.
57
+ - ❌ DO NOT use `git subtree` as it creates a different tracking model.
@@ -0,0 +1,118 @@
1
+ # Skill: Integration Testing (Cross-Cutting)
2
+
3
+ ## Purpose
4
+
5
+ This skill is used to create integration tests that verify how different components work together. Integration tests check interactions between modules, services, databases, and external APIs.
6
+
7
+ ## When to Use
8
+
9
+ - When testing component interactions
10
+ - When testing API endpoints
11
+ - When testing database operations
12
+ - When testing service integrations
13
+ - When verifying data flow between components
14
+ - When testing with real dependencies (not mocks)
15
+
16
+ ## Step-by-Step Process
17
+
18
+ ### Step 1: Identify Integration Points
19
+ - Map component dependencies
20
+ - Identify external services and APIs
21
+ - List database operations
22
+ - Determine integration boundaries
23
+ - Identify critical integration paths
24
+
25
+ ### Step 2: Set Up Test Environment
26
+ - Configure test database
27
+ - Set up test services/mocks for external APIs
28
+ - Configure test environment variables
29
+ - Prepare test data fixtures
30
+ - Set up cleanup procedures
31
+
32
+ ### Step 3: Write Integration Tests
33
+ - Create test files for integration scenarios
34
+ - Test component interactions
35
+ - Test API endpoints with real requests
36
+ - Test database operations
37
+ - Test error handling across components
38
+ - Use test fixtures for consistent data
39
+
40
+ ### Step 4: Run and Verify
41
+ - Run integration tests
42
+ - Verify test isolation (tests don't affect each other)
43
+ - Check test execution time
44
+ - Ensure proper cleanup after tests
45
+ - Verify tests pass consistently
46
+
47
+ ### Step 5: Maintain Tests
48
+ - Update tests when interfaces change
49
+ - Keep test data synchronized
50
+ - Document test scenarios
51
+ - Monitor test execution time
52
+
53
+ ## Required Input
54
+
55
+ - **Components**: List of components to integrate
56
+ - **APIs**: API endpoints to test
57
+ - **Database schema**: Database structure for testing
58
+ - **External services**: External services to mock or use
59
+ - **Test data**: Sample data for testing
60
+
61
+ ## Expected Output
62
+
63
+ - Integration test files
64
+ - Test scenarios covering integration paths
65
+ - Test fixtures and setup code
66
+ - Passing integration test suite
67
+ - Documentation of integration test scenarios
68
+
69
+ ## Tone & Rules
70
+
71
+ ### Test Scope
72
+ - Test real interactions between components
73
+ - Use real databases (test database)
74
+ - Mock external services that can't be controlled
75
+ - Test error propagation across boundaries
76
+
77
+ ### Test Data
78
+ - Use consistent test fixtures
79
+ - Clean up test data after tests
80
+ - Use transactions for database tests when possible
81
+ - Isolate tests to prevent interference
82
+
83
+ ### Performance
84
+ - Integration tests are slower than unit tests
85
+ - Run integration tests separately from unit tests
86
+ - Use test database (not production)
87
+ - Consider test execution time
88
+
89
+ ### Limitations
90
+ - ❌ DO NOT use production database
91
+ - ❌ DO NOT test with real external APIs in CI (use mocks)
92
+ - ❌ DO NOT write tests that depend on test execution order
93
+ - ❌ DO NOT skip cleanup (tests must be isolated)
94
+ - ❌ DO NOT test implementation details
95
+
96
+ ## Available Templates
97
+
98
+ - `templates/integration-test-template.js` - JavaScript integration test template
99
+ - `templates/integration-test-template.php` - PHP integration test template
100
+ - `templates/integration-test-template.py` - Python integration test template
101
+
102
+ ## Available Scripts
103
+
104
+ - `scripts/setup-test-db.sh` - Set up test database
105
+ - `scripts/seed-test-data.sh` - Seed test data
106
+
107
+ ## Examples
108
+
109
+ See `examples/` directory for reference:
110
+ - `good-integration-test/` - Well-structured integration tests
111
+ - `bad-integration-test/` - Examples to avoid
112
+
113
+ ## Links to Other Skills
114
+
115
+ - **unit-test**: Use unit tests before integration tests
116
+ - **e2e-test**: Use for end-to-end user scenarios
117
+ - **documents**: Use to document integration test strategy
118
+
@@ -1,63 +1,63 @@
1
- # HeRaSpec Knowledge Base
2
-
3
- Pre-analyzed profiles for frameworks, APIs, and platforms. When a skill (like `sourcecode-analyzer`) is invoked, it checks this knowledge base first to avoid redundant analysis.
4
-
5
- ## Structure
6
-
7
- ```
8
- knowledge/
9
- ├── index.json ← Registry of all built-in entries
10
- ├── frameworks/ ← CMS/Framework architecture profiles
11
- │ └── <runtime>/<framework>/<cms>/
12
- │ ├── profile.json ← Metadata, match signals, key features
13
- │ └── structure.md ← Pre-analyzed architecture report
14
- ├── apis/ ← Third-party API profiles (Shopify, QuickBooks, ...)
15
- │ └── <provider>/
16
- │ ├── profile.json
17
- │ └── <analysis-files>
18
- ├── platforms/ ← Platform/infra knowledge (AWS, Vercel, ...)
19
- │ └── <platform>/
20
- │ ├── profile.json
21
- │ └── <analysis-files>
22
- └── custom/ ← User's custom knowledge (NEVER touched by CLI)
23
- ├── index.json ← Custom registry
24
- └── ... ← User-managed entries
25
- ```
26
-
27
- ## Categories
28
-
29
- | Category | Purpose | Example |
30
- |----------|---------|---------|
31
- | `frameworks` | CMS/Framework architecture profiles | Laravel/Botble, WordPress, Perfex CRM |
32
- | `apis` | Third-party API specifications | Shopify API, QuickBooks API |
33
- | `platforms` | Deployment/infrastructure knowledge | AWS, Vercel, Docker patterns |
34
-
35
- ## How Matching Works
36
-
37
- Each entry in `index.json` has `matchSignals` — conditions checked against the current project:
38
-
39
- | Signal Type | Description | Example |
40
- |-------------|-------------|---------|
41
- | `file-contains` | File exists AND contains string | `composer.json` contains `"botble"` |
42
- | `directory-exists` | Directory exists in project | `platform/core` exists |
43
-
44
- Each matched signal = +1 score. If `score >= minMatchScore`, the knowledge is considered a match.
45
-
46
- ## How Skills Use Knowledge
47
-
48
- 1. Skill reads `heraspec/knowledge/index.json`
49
- 2. Matches project against entries using signals
50
- 3. If matched: loads pre-analyzed report as baseline, focuses on project-specific delta
51
- 4. If no match: performs full analysis from scratch
52
-
53
- ## Custom Knowledge
54
-
55
- Users can add project-specific knowledge in `heraspec/knowledge/custom/`:
56
-
57
- 1. Create entry directory under `custom/`
58
- 2. Add to `custom/index.json`
59
- 3. The CLI will **never** modify or delete anything in `custom/`
60
-
61
- ## Updating Knowledge
62
-
63
- Run `heraspec init` to update built-in knowledge to the latest version. Custom entries are preserved.
1
+ # HeRaSpec Knowledge Base
2
+
3
+ Pre-analyzed profiles for frameworks, APIs, and platforms. When a skill (like `sourcecode-analyzer`) is invoked, it checks this knowledge base first to avoid redundant analysis.
4
+
5
+ ## Structure
6
+
7
+ ```
8
+ knowledge/
9
+ ├── index.json ← Registry of all built-in entries
10
+ ├── frameworks/ ← CMS/Framework architecture profiles
11
+ │ └── <runtime>/<framework>/<cms>/
12
+ │ ├── profile.json ← Metadata, match signals, key features
13
+ │ └── structure.md ← Pre-analyzed architecture report
14
+ ├── apis/ ← Third-party API profiles (Shopify, QuickBooks, ...)
15
+ │ └── <provider>/
16
+ │ ├── profile.json
17
+ │ └── <analysis-files>
18
+ ├── platforms/ ← Platform/infra knowledge (AWS, Vercel, ...)
19
+ │ └── <platform>/
20
+ │ ├── profile.json
21
+ │ └── <analysis-files>
22
+ └── custom/ ← User's custom knowledge (NEVER touched by CLI)
23
+ ├── index.json ← Custom registry
24
+ └── ... ← User-managed entries
25
+ ```
26
+
27
+ ## Categories
28
+
29
+ | Category | Purpose | Example |
30
+ |----------|---------|---------|
31
+ | `frameworks` | CMS/Framework architecture profiles | Laravel/Botble, WordPress, Perfex CRM |
32
+ | `apis` | Third-party API specifications | Shopify API, QuickBooks API |
33
+ | `platforms` | Deployment/infrastructure knowledge | AWS, Vercel, Docker patterns |
34
+
35
+ ## How Matching Works
36
+
37
+ Each entry in `index.json` has `matchSignals` — conditions checked against the current project:
38
+
39
+ | Signal Type | Description | Example |
40
+ |-------------|-------------|---------|
41
+ | `file-contains` | File exists AND contains string | `composer.json` contains `"botble"` |
42
+ | `directory-exists` | Directory exists in project | `platform/core` exists |
43
+
44
+ Each matched signal = +1 score. If `score >= minMatchScore`, the knowledge is considered a match.
45
+
46
+ ## How Skills Use Knowledge
47
+
48
+ 1. Skill reads `heraspec/knowledge/index.json`
49
+ 2. Matches project against entries using signals
50
+ 3. If matched: loads pre-analyzed report as baseline, focuses on project-specific delta
51
+ 4. If no match: performs full analysis from scratch
52
+
53
+ ## Custom Knowledge
54
+
55
+ Users can add project-specific knowledge in `heraspec/knowledge/custom/`:
56
+
57
+ 1. Create entry directory under `custom/`
58
+ 2. Add to `custom/index.json`
59
+ 3. The CLI will **never** modify or delete anything in `custom/`
60
+
61
+ ## Updating Knowledge
62
+
63
+ Run `heraspec init` to update built-in knowledge to the latest version. Custom entries are preserved.
@@ -1,72 +1,72 @@
1
- {
2
- "version": "1.0",
3
- "source": "https://github.com/VoltAgent/awesome-design-md",
4
- "description": "DESIGN.md files extracted from real websites following Google Stitch format. Each file contains a complete design system with 9 sections: Visual Theme, Color Palette, Typography, Components, Layout, Elevation, Do's/Don'ts, Responsive, Agent Prompts.",
5
- "format": "Google Stitch DESIGN.md (https://stitch.withgoogle.com/docs/design-md/format/)",
6
- "update_instructions": "To update: copy DESIGN.md files from awesome-design-md/design-md/<site>/ into the corresponding subdirectory here. Only DESIGN.md files are needed (preview.html files are not required).",
7
- "count": 54,
8
- "categories": {
9
- "ai-ml": ["claude", "cohere", "elevenlabs", "minimax", "mistral.ai", "ollama", "opencode.ai", "replicate", "runwayml", "together.ai", "voltagent", "x.ai"],
10
- "developer-tools": ["cursor", "expo", "linear.app", "lovable", "mintlify", "posthog", "raycast", "resend", "sentry", "supabase", "superhuman", "vercel", "warp", "zapier"],
11
- "infrastructure-cloud": ["clickhouse", "composio", "hashicorp", "mongodb", "sanity", "stripe"],
12
- "design-productivity": ["airtable", "cal", "clay", "figma", "framer", "intercom", "miro", "notion", "pinterest", "webflow"],
13
- "fintech-crypto": ["coinbase", "kraken", "revolut", "wise"],
14
- "enterprise-consumer": ["airbnb", "apple", "bmw", "ibm", "nvidia", "spacex", "spotify", "uber"]
15
- },
16
- "entries": [
17
- {"id": "airbnb", "name": "Airbnb", "category": "enterprise-consumer", "theme": "light", "accent": "#FF5A5F"},
18
- {"id": "airtable", "name": "Airtable", "category": "design-productivity", "theme": "light", "accent": "#2D7FF9"},
19
- {"id": "apple", "name": "Apple", "category": "enterprise-consumer", "theme": "light", "accent": "#0071E3"},
20
- {"id": "bmw", "name": "BMW", "category": "enterprise-consumer", "theme": "dark", "accent": "#1C69D4"},
21
- {"id": "cal", "name": "Cal.com", "category": "design-productivity", "theme": "light", "accent": "#111827"},
22
- {"id": "claude", "name": "Claude (Anthropic)", "category": "ai-ml", "theme": "light", "accent": "#DA7756"},
23
- {"id": "clay", "name": "Clay", "category": "design-productivity", "theme": "light", "accent": "#4361EE"},
24
- {"id": "clickhouse", "name": "ClickHouse", "category": "infrastructure-cloud", "theme": "light", "accent": "#FADB14"},
25
- {"id": "cohere", "name": "Cohere", "category": "ai-ml", "theme": "both", "accent": "#39594D"},
26
- {"id": "coinbase", "name": "Coinbase", "category": "fintech-crypto", "theme": "light", "accent": "#0052FF"},
27
- {"id": "composio", "name": "Composio", "category": "infrastructure-cloud", "theme": "dark", "accent": "#6C5CE7"},
28
- {"id": "cursor", "name": "Cursor", "category": "developer-tools", "theme": "dark", "accent": "#7C5CFC"},
29
- {"id": "elevenlabs", "name": "ElevenLabs", "category": "ai-ml", "theme": "dark", "accent": "#FFFFFF"},
30
- {"id": "expo", "name": "Expo", "category": "developer-tools", "theme": "dark", "accent": "#368CCB"},
31
- {"id": "figma", "name": "Figma", "category": "design-productivity", "theme": "light", "accent": "#0D99FF"},
32
- {"id": "framer", "name": "Framer", "category": "design-productivity", "theme": "both", "accent": "#0055FF"},
33
- {"id": "hashicorp", "name": "HashiCorp", "category": "infrastructure-cloud", "theme": "light", "accent": "#000000"},
34
- {"id": "ibm", "name": "IBM", "category": "enterprise-consumer", "theme": "both", "accent": "#0F62FE"},
35
- {"id": "intercom", "name": "Intercom", "category": "design-productivity", "theme": "light", "accent": "#396AFF"},
36
- {"id": "kraken", "name": "Kraken", "category": "fintech-crypto", "theme": "dark", "accent": "#7B61FF"},
37
- {"id": "linear.app", "name": "Linear", "category": "developer-tools", "theme": "dark", "accent": "#5E6AD2"},
38
- {"id": "lovable", "name": "Lovable", "category": "developer-tools", "theme": "both", "accent": "#9B87F5"},
39
- {"id": "minimax", "name": "MiniMax", "category": "ai-ml", "theme": "dark", "accent": "#00FF88"},
40
- {"id": "mintlify", "name": "Mintlify", "category": "developer-tools", "theme": "light", "accent": "#0D9373"},
41
- {"id": "miro", "name": "Miro", "category": "design-productivity", "theme": "light", "accent": "#FFD02F"},
42
- {"id": "mistral.ai", "name": "Mistral AI", "category": "ai-ml", "theme": "light", "accent": "#F54E42"},
43
- {"id": "mongodb", "name": "MongoDB", "category": "infrastructure-cloud", "theme": "light", "accent": "#00ED64"},
44
- {"id": "notion", "name": "Notion", "category": "design-productivity", "theme": "light", "accent": "#2383E2"},
45
- {"id": "nvidia", "name": "NVIDIA", "category": "enterprise-consumer", "theme": "dark", "accent": "#76B900"},
46
- {"id": "ollama", "name": "Ollama", "category": "ai-ml", "theme": "light", "accent": "#000000"},
47
- {"id": "opencode.ai", "name": "OpenCode", "category": "ai-ml", "theme": "dark", "accent": "#10B981"},
48
- {"id": "pinterest", "name": "Pinterest", "category": "design-productivity", "theme": "light", "accent": "#E60023"},
49
- {"id": "posthog", "name": "PostHog", "category": "developer-tools", "theme": "dark", "accent": "#F54E00"},
50
- {"id": "raycast", "name": "Raycast", "category": "developer-tools", "theme": "dark", "accent": "#FF6363"},
51
- {"id": "replicate", "name": "Replicate", "category": "ai-ml", "theme": "light", "accent": "#000000"},
52
- {"id": "resend", "name": "Resend", "category": "developer-tools", "theme": "dark", "accent": "#FFFFFF"},
53
- {"id": "revolut", "name": "Revolut", "category": "fintech-crypto", "theme": "dark", "accent": "#0075EB"},
54
- {"id": "runwayml", "name": "Runway", "category": "ai-ml", "theme": "dark", "accent": "#FFFFFF"},
55
- {"id": "sanity", "name": "Sanity", "category": "infrastructure-cloud", "theme": "light", "accent": "#F36458"},
56
- {"id": "sentry", "name": "Sentry", "category": "developer-tools", "theme": "dark", "accent": "#6C5FC7"},
57
- {"id": "spacex", "name": "SpaceX", "category": "enterprise-consumer", "theme": "dark", "accent": "#FFFFFF"},
58
- {"id": "spotify", "name": "Spotify", "category": "enterprise-consumer", "theme": "dark", "accent": "#1DB954"},
59
- {"id": "stripe", "name": "Stripe", "category": "infrastructure-cloud", "theme": "light", "accent": "#533AFD"},
60
- {"id": "supabase", "name": "Supabase", "category": "developer-tools", "theme": "dark", "accent": "#3ECF8E"},
61
- {"id": "superhuman", "name": "Superhuman", "category": "developer-tools", "theme": "dark", "accent": "#6C5CE7"},
62
- {"id": "together.ai", "name": "Together AI", "category": "ai-ml", "theme": "both", "accent": "#3A86FF"},
63
- {"id": "uber", "name": "Uber", "category": "enterprise-consumer", "theme": "both", "accent": "#000000"},
64
- {"id": "vercel", "name": "Vercel", "category": "developer-tools", "theme": "light", "accent": "#171717"},
65
- {"id": "voltagent", "name": "VoltAgent", "category": "ai-ml", "theme": "dark", "accent": "#10B981"},
66
- {"id": "warp", "name": "Warp", "category": "developer-tools", "theme": "dark", "accent": "#01A4FF"},
67
- {"id": "webflow", "name": "Webflow", "category": "design-productivity", "theme": "light", "accent": "#4353FF"},
68
- {"id": "wise", "name": "Wise", "category": "fintech-crypto", "theme": "light", "accent": "#9FE870"},
69
- {"id": "x.ai", "name": "xAI", "category": "ai-ml", "theme": "dark", "accent": "#FFFFFF"},
70
- {"id": "zapier", "name": "Zapier", "category": "developer-tools", "theme": "light", "accent": "#FF4A00"}
71
- ]
72
- }
1
+ {
2
+ "version": "1.0",
3
+ "source": "https://github.com/VoltAgent/awesome-design-md",
4
+ "description": "DESIGN.md files extracted from real websites following Google Stitch format. Each file contains a complete design system with 9 sections: Visual Theme, Color Palette, Typography, Components, Layout, Elevation, Do's/Don'ts, Responsive, Agent Prompts.",
5
+ "format": "Google Stitch DESIGN.md (https://stitch.withgoogle.com/docs/design-md/format/)",
6
+ "update_instructions": "To update: copy DESIGN.md files from awesome-design-md/design-md/<site>/ into the corresponding subdirectory here. Only DESIGN.md files are needed (preview.html files are not required).",
7
+ "count": 54,
8
+ "categories": {
9
+ "ai-ml": ["claude", "cohere", "elevenlabs", "minimax", "mistral.ai", "ollama", "opencode.ai", "replicate", "runwayml", "together.ai", "voltagent", "x.ai"],
10
+ "developer-tools": ["cursor", "expo", "linear.app", "lovable", "mintlify", "posthog", "raycast", "resend", "sentry", "supabase", "superhuman", "vercel", "warp", "zapier"],
11
+ "infrastructure-cloud": ["clickhouse", "composio", "hashicorp", "mongodb", "sanity", "stripe"],
12
+ "design-productivity": ["airtable", "cal", "clay", "figma", "framer", "intercom", "miro", "notion", "pinterest", "webflow"],
13
+ "fintech-crypto": ["coinbase", "kraken", "revolut", "wise"],
14
+ "enterprise-consumer": ["airbnb", "apple", "bmw", "ibm", "nvidia", "spacex", "spotify", "uber"]
15
+ },
16
+ "entries": [
17
+ {"id": "airbnb", "name": "Airbnb", "category": "enterprise-consumer", "theme": "light", "accent": "#FF5A5F"},
18
+ {"id": "airtable", "name": "Airtable", "category": "design-productivity", "theme": "light", "accent": "#2D7FF9"},
19
+ {"id": "apple", "name": "Apple", "category": "enterprise-consumer", "theme": "light", "accent": "#0071E3"},
20
+ {"id": "bmw", "name": "BMW", "category": "enterprise-consumer", "theme": "dark", "accent": "#1C69D4"},
21
+ {"id": "cal", "name": "Cal.com", "category": "design-productivity", "theme": "light", "accent": "#111827"},
22
+ {"id": "claude", "name": "Claude (Anthropic)", "category": "ai-ml", "theme": "light", "accent": "#DA7756"},
23
+ {"id": "clay", "name": "Clay", "category": "design-productivity", "theme": "light", "accent": "#4361EE"},
24
+ {"id": "clickhouse", "name": "ClickHouse", "category": "infrastructure-cloud", "theme": "light", "accent": "#FADB14"},
25
+ {"id": "cohere", "name": "Cohere", "category": "ai-ml", "theme": "both", "accent": "#39594D"},
26
+ {"id": "coinbase", "name": "Coinbase", "category": "fintech-crypto", "theme": "light", "accent": "#0052FF"},
27
+ {"id": "composio", "name": "Composio", "category": "infrastructure-cloud", "theme": "dark", "accent": "#6C5CE7"},
28
+ {"id": "cursor", "name": "Cursor", "category": "developer-tools", "theme": "dark", "accent": "#7C5CFC"},
29
+ {"id": "elevenlabs", "name": "ElevenLabs", "category": "ai-ml", "theme": "dark", "accent": "#FFFFFF"},
30
+ {"id": "expo", "name": "Expo", "category": "developer-tools", "theme": "dark", "accent": "#368CCB"},
31
+ {"id": "figma", "name": "Figma", "category": "design-productivity", "theme": "light", "accent": "#0D99FF"},
32
+ {"id": "framer", "name": "Framer", "category": "design-productivity", "theme": "both", "accent": "#0055FF"},
33
+ {"id": "hashicorp", "name": "HashiCorp", "category": "infrastructure-cloud", "theme": "light", "accent": "#000000"},
34
+ {"id": "ibm", "name": "IBM", "category": "enterprise-consumer", "theme": "both", "accent": "#0F62FE"},
35
+ {"id": "intercom", "name": "Intercom", "category": "design-productivity", "theme": "light", "accent": "#396AFF"},
36
+ {"id": "kraken", "name": "Kraken", "category": "fintech-crypto", "theme": "dark", "accent": "#7B61FF"},
37
+ {"id": "linear.app", "name": "Linear", "category": "developer-tools", "theme": "dark", "accent": "#5E6AD2"},
38
+ {"id": "lovable", "name": "Lovable", "category": "developer-tools", "theme": "both", "accent": "#9B87F5"},
39
+ {"id": "minimax", "name": "MiniMax", "category": "ai-ml", "theme": "dark", "accent": "#00FF88"},
40
+ {"id": "mintlify", "name": "Mintlify", "category": "developer-tools", "theme": "light", "accent": "#0D9373"},
41
+ {"id": "miro", "name": "Miro", "category": "design-productivity", "theme": "light", "accent": "#FFD02F"},
42
+ {"id": "mistral.ai", "name": "Mistral AI", "category": "ai-ml", "theme": "light", "accent": "#F54E42"},
43
+ {"id": "mongodb", "name": "MongoDB", "category": "infrastructure-cloud", "theme": "light", "accent": "#00ED64"},
44
+ {"id": "notion", "name": "Notion", "category": "design-productivity", "theme": "light", "accent": "#2383E2"},
45
+ {"id": "nvidia", "name": "NVIDIA", "category": "enterprise-consumer", "theme": "dark", "accent": "#76B900"},
46
+ {"id": "ollama", "name": "Ollama", "category": "ai-ml", "theme": "light", "accent": "#000000"},
47
+ {"id": "opencode.ai", "name": "OpenCode", "category": "ai-ml", "theme": "dark", "accent": "#10B981"},
48
+ {"id": "pinterest", "name": "Pinterest", "category": "design-productivity", "theme": "light", "accent": "#E60023"},
49
+ {"id": "posthog", "name": "PostHog", "category": "developer-tools", "theme": "dark", "accent": "#F54E00"},
50
+ {"id": "raycast", "name": "Raycast", "category": "developer-tools", "theme": "dark", "accent": "#FF6363"},
51
+ {"id": "replicate", "name": "Replicate", "category": "ai-ml", "theme": "light", "accent": "#000000"},
52
+ {"id": "resend", "name": "Resend", "category": "developer-tools", "theme": "dark", "accent": "#FFFFFF"},
53
+ {"id": "revolut", "name": "Revolut", "category": "fintech-crypto", "theme": "dark", "accent": "#0075EB"},
54
+ {"id": "runwayml", "name": "Runway", "category": "ai-ml", "theme": "dark", "accent": "#FFFFFF"},
55
+ {"id": "sanity", "name": "Sanity", "category": "infrastructure-cloud", "theme": "light", "accent": "#F36458"},
56
+ {"id": "sentry", "name": "Sentry", "category": "developer-tools", "theme": "dark", "accent": "#6C5FC7"},
57
+ {"id": "spacex", "name": "SpaceX", "category": "enterprise-consumer", "theme": "dark", "accent": "#FFFFFF"},
58
+ {"id": "spotify", "name": "Spotify", "category": "enterprise-consumer", "theme": "dark", "accent": "#1DB954"},
59
+ {"id": "stripe", "name": "Stripe", "category": "infrastructure-cloud", "theme": "light", "accent": "#533AFD"},
60
+ {"id": "supabase", "name": "Supabase", "category": "developer-tools", "theme": "dark", "accent": "#3ECF8E"},
61
+ {"id": "superhuman", "name": "Superhuman", "category": "developer-tools", "theme": "dark", "accent": "#6C5CE7"},
62
+ {"id": "together.ai", "name": "Together AI", "category": "ai-ml", "theme": "both", "accent": "#3A86FF"},
63
+ {"id": "uber", "name": "Uber", "category": "enterprise-consumer", "theme": "both", "accent": "#000000"},
64
+ {"id": "vercel", "name": "Vercel", "category": "developer-tools", "theme": "light", "accent": "#171717"},
65
+ {"id": "voltagent", "name": "VoltAgent", "category": "ai-ml", "theme": "dark", "accent": "#10B981"},
66
+ {"id": "warp", "name": "Warp", "category": "developer-tools", "theme": "dark", "accent": "#01A4FF"},
67
+ {"id": "webflow", "name": "Webflow", "category": "design-productivity", "theme": "light", "accent": "#4353FF"},
68
+ {"id": "wise", "name": "Wise", "category": "fintech-crypto", "theme": "light", "accent": "#9FE870"},
69
+ {"id": "x.ai", "name": "xAI", "category": "ai-ml", "theme": "dark", "accent": "#FFFFFF"},
70
+ {"id": "zapier", "name": "Zapier", "category": "developer-tools", "theme": "light", "accent": "#FF4A00"}
71
+ ]
72
+ }
@@ -1,27 +1,27 @@
1
- {
2
- "id": "php-codeigniter-rise-cms",
3
- "name": "RISE CRM",
4
- "runtime": "php",
5
- "runtimeVersion": "^8.1",
6
- "framework": "codeigniter",
7
- "frameworkVersion": "^4.0",
8
- "cms": "rise-cms",
9
- "cmsType": "monolith-with-plugins",
10
- "description": "CodeIgniter 4 CRM with plugin-based extensibility and Data Builder API surfaces",
11
- "keyFeatures": [
12
- "CodeIgniter 4 monolith with plugin-based extensibility",
13
- "Data Builder plugin with REST and GraphQL APIs",
14
- "Hook and lifecycle extension system for plugins",
15
- "API token management, scopes, and rate controls",
16
- "Webhook dispatch and delivery logging",
17
- "Public API docs and sandbox flows"
18
- ],
19
- "directorySignature": [
20
- "app",
21
- "plugins",
22
- "system",
23
- "writable"
24
- ],
25
- "analysisFile": "structure.md",
26
- "lastUpdated": "2026-04-04"
27
- }
1
+ {
2
+ "id": "php-codeigniter-rise-cms",
3
+ "name": "RISE CRM",
4
+ "runtime": "php",
5
+ "runtimeVersion": "^8.1",
6
+ "framework": "codeigniter",
7
+ "frameworkVersion": "^4.0",
8
+ "cms": "rise-cms",
9
+ "cmsType": "monolith-with-plugins",
10
+ "description": "CodeIgniter 4 CRM with plugin-based extensibility and Data Builder API surfaces",
11
+ "keyFeatures": [
12
+ "CodeIgniter 4 monolith with plugin-based extensibility",
13
+ "Data Builder plugin with REST and GraphQL APIs",
14
+ "Hook and lifecycle extension system for plugins",
15
+ "API token management, scopes, and rate controls",
16
+ "Webhook dispatch and delivery logging",
17
+ "Public API docs and sandbox flows"
18
+ ],
19
+ "directorySignature": [
20
+ "app",
21
+ "plugins",
22
+ "system",
23
+ "writable"
24
+ ],
25
+ "analysisFile": "structure.md",
26
+ "lastUpdated": "2026-04-04"
27
+ }