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.
- package/LICENSE +187 -0
- package/README.md +94 -95
- package/bin/heraspec.js +195 -80
- package/bin/heraspec.js.map +2 -2
- package/dist/core/templates/skills/README.md +41 -38
- package/dist/core/templates/skills/campaign-plan/skill.md +76 -0
- package/dist/core/templates/skills/campaign-plan/skill.vi.md +76 -0
- package/dist/core/templates/skills/campaign-plan-skill.md +76 -0
- package/dist/core/templates/skills/campaign-plan-skill.vi.md +76 -0
- package/dist/core/templates/skills/code-review/skill.md +70 -0
- package/dist/core/templates/skills/code-review/skill.vi.md +70 -0
- package/dist/core/templates/skills/code-review-skill.md +70 -0
- package/dist/core/templates/skills/code-review-skill.vi.md +70 -0
- package/dist/core/templates/skills/content-creation/skill.md +69 -0
- package/dist/core/templates/skills/content-creation/skill.vi.md +69 -0
- package/dist/core/templates/skills/content-creation-skill.md +69 -0
- package/dist/core/templates/skills/content-creation-skill.vi.md +69 -0
- package/dist/core/templates/skills/content-optimization/skill.md +104 -0
- package/dist/core/templates/skills/debug/skill.md +69 -0
- package/dist/core/templates/skills/debug/skill.vi.md +69 -0
- package/dist/core/templates/skills/debug-skill.md +69 -0
- package/dist/core/templates/skills/debug-skill.vi.md +69 -0
- package/dist/core/templates/skills/deploy-documentation/skill.md +408 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/airbnb/DESIGN.md +246 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/airtable/DESIGN.md +89 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/apple/DESIGN.md +313 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/bmw/DESIGN.md +180 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/cal/DESIGN.md +259 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/claude/DESIGN.md +312 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/clay/DESIGN.md +304 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/clickhouse/DESIGN.md +281 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/cohere/DESIGN.md +266 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/coinbase/DESIGN.md +129 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/composio/DESIGN.md +307 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/cursor/DESIGN.md +309 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/elevenlabs/DESIGN.md +265 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/expo/DESIGN.md +281 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/figma/DESIGN.md +220 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/framer/DESIGN.md +246 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/hashicorp/DESIGN.md +278 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/ibm/DESIGN.md +332 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/index.json +72 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/intercom/DESIGN.md +146 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/kraken/DESIGN.md +125 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/linear.app/DESIGN.md +367 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/lovable/DESIGN.md +298 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/minimax/DESIGN.md +257 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/mintlify/DESIGN.md +326 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/miro/DESIGN.md +108 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/mistral.ai/DESIGN.md +261 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/mongodb/DESIGN.md +266 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/notion/DESIGN.md +309 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/nvidia/DESIGN.md +293 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/ollama/DESIGN.md +267 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/opencode.ai/DESIGN.md +281 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/pinterest/DESIGN.md +230 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/posthog/DESIGN.md +256 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/raycast/DESIGN.md +268 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/replicate/DESIGN.md +261 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/resend/DESIGN.md +303 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/revolut/DESIGN.md +185 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/runwayml/DESIGN.md +244 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/sanity/DESIGN.md +357 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/sentry/DESIGN.md +262 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/spacex/DESIGN.md +194 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/spotify/DESIGN.md +246 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/stripe/DESIGN.md +322 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/supabase/DESIGN.md +255 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/superhuman/DESIGN.md +252 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/together.ai/DESIGN.md +263 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/uber/DESIGN.md +295 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/vercel/DESIGN.md +310 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/voltagent/DESIGN.md +323 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/warp/DESIGN.md +253 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/webflow/DESIGN.md +92 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/wise/DESIGN.md +173 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/x.ai/DESIGN.md +257 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/zapier/DESIGN.md +328 -0
- package/dist/core/templates/skills/design-system/skill.md +176 -0
- package/dist/core/templates/skills/documents/skill.md +104 -0
- package/dist/core/templates/skills/e2e-test/skill.md +119 -0
- package/dist/core/templates/skills/email-sequence/skill.md +68 -0
- package/dist/core/templates/skills/email-sequence/skill.vi.md +68 -0
- package/dist/core/templates/skills/email-sequence-skill.md +68 -0
- package/dist/core/templates/skills/email-sequence-skill.vi.md +68 -0
- package/dist/core/templates/skills/git-embed/skill.md +57 -0
- package/dist/core/templates/skills/integration-test/skill.md +118 -0
- package/dist/core/templates/skills/knowledge/README.md +63 -63
- package/dist/core/templates/skills/knowledge/design-systems/index.json +72 -72
- package/dist/core/templates/skills/knowledge/frameworks/php/codeigniter/rise-cms/profile.json +27 -27
- package/dist/core/templates/skills/knowledge/frameworks/php/codeigniter/rise-cms/structure.md +137 -137
- package/dist/core/templates/skills/knowledge/frameworks/php/laravel/botble/profile.json +39 -39
- package/dist/core/templates/skills/knowledge/frameworks/php/laravel/botble/structure.md +207 -207
- package/dist/core/templates/skills/knowledge/frameworks/php/wordpress/core/profile.json +51 -51
- package/dist/core/templates/skills/knowledge/frameworks/php/wordpress/core/structure.md +369 -369
- package/dist/core/templates/skills/knowledge/index.json +65 -65
- package/dist/core/templates/skills/perfex-module/module-codebase/skill.md +110 -0
- package/dist/core/templates/skills/project-memory/skill.md +222 -0
- package/dist/core/templates/skills/project-memory/skill.vi.md +223 -0
- package/dist/core/templates/skills/seo-audit/skill.md +75 -0
- package/dist/core/templates/skills/seo-audit/skill.vi.md +75 -0
- package/dist/core/templates/skills/seo-audit-skill.md +75 -0
- package/dist/core/templates/skills/seo-audit-skill.vi.md +75 -0
- package/dist/core/templates/skills/smart-explore/skill.md +141 -0
- package/dist/core/templates/skills/sourcecode-analyzer/skill.md +210 -0
- package/dist/core/templates/skills/sourcecode-analyzer/skill.vi.md +210 -0
- package/dist/core/templates/skills/spec-writer/skill.md +61 -0
- package/dist/core/templates/skills/spec-writer/skill.vi.md +61 -0
- package/dist/core/templates/skills/spec-writer-skill.md +61 -0
- package/dist/core/templates/skills/spec-writer-skill.vi.md +61 -0
- package/dist/core/templates/skills/sql-queries/skill.md +67 -0
- package/dist/core/templates/skills/sql-queries/skill.vi.md +67 -0
- package/dist/core/templates/skills/sql-queries-skill.md +67 -0
- package/dist/core/templates/skills/sql-queries-skill.vi.md +67 -0
- package/dist/core/templates/skills/suggestion/skill.md +118 -0
- package/dist/core/templates/skills/system-design/skill.md +70 -0
- package/dist/core/templates/skills/system-design/skill.vi.md +70 -0
- package/dist/core/templates/skills/system-design-skill.md +70 -0
- package/dist/core/templates/skills/system-design-skill.vi.md +70 -0
- package/dist/core/templates/skills/tech-debt/skill.md +70 -0
- package/dist/core/templates/skills/tech-debt/skill.vi.md +70 -0
- package/dist/core/templates/skills/tech-debt-skill.md +70 -0
- package/dist/core/templates/skills/tech-debt-skill.vi.md +70 -0
- package/dist/core/templates/skills/ui-ux/data/charts.csv +26 -0
- package/dist/core/templates/skills/ui-ux/data/colors.csv +97 -0
- package/dist/core/templates/skills/ui-ux/data/design-systems.csv +54 -0
- package/dist/core/templates/skills/ui-ux/data/landing.csv +31 -0
- package/dist/core/templates/skills/ui-ux/data/pages-proposed.csv +22 -0
- package/dist/core/templates/skills/ui-ux/data/pages.csv +10 -0
- package/dist/core/templates/skills/ui-ux/data/products.csv +97 -0
- package/dist/core/templates/skills/ui-ux/data/prompts.csv +24 -0
- package/dist/core/templates/skills/ui-ux/data/stacks/flutter.csv +53 -0
- package/dist/core/templates/skills/ui-ux/data/stacks/html-tailwind.csv +56 -0
- package/dist/core/templates/skills/ui-ux/data/stacks/nextjs.csv +53 -0
- package/dist/core/templates/skills/ui-ux/data/stacks/react-native.csv +52 -0
- package/dist/core/templates/skills/ui-ux/data/stacks/react.csv +54 -0
- package/dist/core/templates/skills/ui-ux/data/stacks/svelte.csv +54 -0
- package/dist/core/templates/skills/ui-ux/data/stacks/swiftui.csv +51 -0
- package/dist/core/templates/skills/ui-ux/data/stacks/vue.csv +50 -0
- package/dist/core/templates/skills/ui-ux/data/styles.csv +59 -0
- package/dist/core/templates/skills/ui-ux/data/typography.csv +58 -0
- package/dist/core/templates/skills/ui-ux/data/ux-guidelines.csv +100 -0
- package/dist/core/templates/skills/ui-ux/scripts/CODE_EXPLANATION.md +394 -0
- package/dist/core/templates/skills/ui-ux/scripts/SEARCH_ALGORITHMS_COMPARISON.md +421 -0
- package/dist/core/templates/skills/ui-ux/scripts/SEARCH_MODES_GUIDE.md +238 -0
- package/dist/core/templates/skills/ui-ux/scripts/core.py +391 -0
- package/dist/core/templates/skills/ui-ux/scripts/search.py +73 -0
- package/dist/core/templates/skills/ui-ux/skill.md +595 -0
- package/dist/core/templates/skills/ui-ux/templates/accessibility-checklist.md +40 -0
- package/dist/core/templates/skills/ui-ux/templates/example-prompt-full-theme.md +333 -0
- package/dist/core/templates/skills/ui-ux/templates/page-types-guide.md +338 -0
- package/dist/core/templates/skills/ui-ux/templates/pages-proposed-summary.md +273 -0
- package/dist/core/templates/skills/ui-ux/templates/pre-delivery-checklist.md +42 -0
- package/dist/core/templates/skills/ui-ux/templates/prompt-template-full-theme.md +313 -0
- package/dist/core/templates/skills/ui-ux/templates/responsive-design.md +40 -0
- package/dist/core/templates/skills/unit-test/skill.md +111 -0
- package/dist/core/templates/skills/wordpress/plugin-check/skill.md +151 -0
- package/dist/core/templates/skills/wordpress/plugin-directory/skill.md +396 -0
- package/dist/core/templates/skills/wordpress/plugin-standard/skill.md +100 -0
- package/dist/core/templates/skills/wordpress/plugin-standard/templates/admin-dashboard.php +47 -0
- package/dist/core/templates/skills/wordpress/plugin-standard/templates/admin-settings.php +60 -0
- package/dist/core/templates/skills/wordpress/plugin-standard/templates/assets/admin-css.css +22 -0
- package/dist/core/templates/skills/wordpress/plugin-standard/templates/assets/admin-js.js +15 -0
- package/dist/core/templates/skills/wordpress/plugin-standard/templates/plugin-main.php +169 -0
- package/dist/core/templates/skills/wordpress/plugin-standard/templates/readme.txt +41 -0
- package/dist/core/templates/skills/wordpress/plugin-standard/templates/uninstall.php +21 -0
- package/dist/core/templates/skills/wordpress/ux-element/skill.md +83 -0
- package/dist/core/templates/skills/wordpress/ux-element/templates/Controller.php +50 -0
- package/dist/core/templates/skills/wordpress/ux-element/templates/Shortcode.php +23 -0
- package/dist/core/templates/skills/wordpress/ux-element/templates/Template.html +20 -0
- package/dist/core/templates/skills/wordpress/ux-element/templates/Thumbnail.svg +8 -0
- package/dist/core/templates/skills/wordpress/ux-element/templates/View.php +21 -0
- package/dist/index.js +195 -79
- package/package.json +1 -1
|
@@ -1,65 +1,65 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": "1.0",
|
|
3
|
-
"description": "HeRaSpec Knowledge Base — Pre-analyzed profiles for frameworks, APIs, and platforms",
|
|
4
|
-
"categories": ["frameworks", "apis", "platforms"],
|
|
5
|
-
"entries": [
|
|
6
|
-
{
|
|
7
|
-
"id": "php-laravel-botble",
|
|
8
|
-
"category": "frameworks",
|
|
9
|
-
"runtime": "php",
|
|
10
|
-
"framework": "laravel",
|
|
11
|
-
"cms": "botble",
|
|
12
|
-
"frameworkVersion": "^13.0",
|
|
13
|
-
"runtimeVersion": "^8.3",
|
|
14
|
-
"matchSignals": [
|
|
15
|
-
{ "type": "file-contains", "file": "composer.json", "contains": "botble" },
|
|
16
|
-
{ "type": "file-contains", "file": "composer.json", "contains": "laravel/framework" },
|
|
17
|
-
{ "type": "directory-exists", "path": "platform/core" },
|
|
18
|
-
{ "type": "directory-exists", "path": "platform/plugins" }
|
|
19
|
-
],
|
|
20
|
-
"minMatchScore": 3,
|
|
21
|
-
"knowledgePath": "frameworks/php/laravel/botble",
|
|
22
|
-
"files": ["profile.json", "structure.md"],
|
|
23
|
-
"lastUpdated": "2026-04-04"
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
"id": "php-codeigniter-rise-cms",
|
|
27
|
-
"category": "frameworks",
|
|
28
|
-
"runtime": "php",
|
|
29
|
-
"framework": "codeigniter",
|
|
30
|
-
"cms": "rise-cms",
|
|
31
|
-
"frameworkVersion": "^4.0",
|
|
32
|
-
"runtimeVersion": "^8.1",
|
|
33
|
-
"matchSignals": [
|
|
34
|
-
{ "type": "file-contains", "file": "index.php", "contains": "CodeIgniter\\Boot::bootWeb()" },
|
|
35
|
-
{ "type": "file-contains", "file": "app/Config/Rise.php", "contains": "app_version" },
|
|
36
|
-
{ "type": "directory-exists", "path": "plugins" },
|
|
37
|
-
{ "type": "directory-exists", "path": "app/Controllers" }
|
|
38
|
-
],
|
|
39
|
-
"minMatchScore": 3,
|
|
40
|
-
"knowledgePath": "frameworks/php/codeigniter/rise-cms",
|
|
41
|
-
"files": ["profile.json", "structure.md"],
|
|
42
|
-
"lastUpdated": "2026-04-04"
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
"id": "php-wordpress-core",
|
|
46
|
-
"category": "frameworks",
|
|
47
|
-
"runtime": "php",
|
|
48
|
-
"framework": "wordpress",
|
|
49
|
-
"cms": "wordpress",
|
|
50
|
-
"frameworkVersion": "^6.0",
|
|
51
|
-
"runtimeVersion": ">=7.2.24",
|
|
52
|
-
"matchSignals": [
|
|
53
|
-
{ "type": "file-contains", "file": "wp-includes/version.php", "contains": "$wp_version" },
|
|
54
|
-
{ "type": "file-contains", "file": "wp-config.php", "contains": "DB_NAME" },
|
|
55
|
-
{ "type": "directory-exists", "path": "wp-content" },
|
|
56
|
-
{ "type": "directory-exists", "path": "wp-includes" },
|
|
57
|
-
{ "type": "directory-exists", "path": "wp-admin" }
|
|
58
|
-
],
|
|
59
|
-
"minMatchScore": 3,
|
|
60
|
-
"knowledgePath": "frameworks/php/wordpress/core",
|
|
61
|
-
"files": ["profile.json", "structure.md"],
|
|
62
|
-
"lastUpdated": "2026-05-03"
|
|
63
|
-
}
|
|
64
|
-
]
|
|
65
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"version": "1.0",
|
|
3
|
+
"description": "HeRaSpec Knowledge Base — Pre-analyzed profiles for frameworks, APIs, and platforms",
|
|
4
|
+
"categories": ["frameworks", "apis", "platforms"],
|
|
5
|
+
"entries": [
|
|
6
|
+
{
|
|
7
|
+
"id": "php-laravel-botble",
|
|
8
|
+
"category": "frameworks",
|
|
9
|
+
"runtime": "php",
|
|
10
|
+
"framework": "laravel",
|
|
11
|
+
"cms": "botble",
|
|
12
|
+
"frameworkVersion": "^13.0",
|
|
13
|
+
"runtimeVersion": "^8.3",
|
|
14
|
+
"matchSignals": [
|
|
15
|
+
{ "type": "file-contains", "file": "composer.json", "contains": "botble" },
|
|
16
|
+
{ "type": "file-contains", "file": "composer.json", "contains": "laravel/framework" },
|
|
17
|
+
{ "type": "directory-exists", "path": "platform/core" },
|
|
18
|
+
{ "type": "directory-exists", "path": "platform/plugins" }
|
|
19
|
+
],
|
|
20
|
+
"minMatchScore": 3,
|
|
21
|
+
"knowledgePath": "frameworks/php/laravel/botble",
|
|
22
|
+
"files": ["profile.json", "structure.md"],
|
|
23
|
+
"lastUpdated": "2026-04-04"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"id": "php-codeigniter-rise-cms",
|
|
27
|
+
"category": "frameworks",
|
|
28
|
+
"runtime": "php",
|
|
29
|
+
"framework": "codeigniter",
|
|
30
|
+
"cms": "rise-cms",
|
|
31
|
+
"frameworkVersion": "^4.0",
|
|
32
|
+
"runtimeVersion": "^8.1",
|
|
33
|
+
"matchSignals": [
|
|
34
|
+
{ "type": "file-contains", "file": "index.php", "contains": "CodeIgniter\\Boot::bootWeb()" },
|
|
35
|
+
{ "type": "file-contains", "file": "app/Config/Rise.php", "contains": "app_version" },
|
|
36
|
+
{ "type": "directory-exists", "path": "plugins" },
|
|
37
|
+
{ "type": "directory-exists", "path": "app/Controllers" }
|
|
38
|
+
],
|
|
39
|
+
"minMatchScore": 3,
|
|
40
|
+
"knowledgePath": "frameworks/php/codeigniter/rise-cms",
|
|
41
|
+
"files": ["profile.json", "structure.md"],
|
|
42
|
+
"lastUpdated": "2026-04-04"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"id": "php-wordpress-core",
|
|
46
|
+
"category": "frameworks",
|
|
47
|
+
"runtime": "php",
|
|
48
|
+
"framework": "wordpress",
|
|
49
|
+
"cms": "wordpress",
|
|
50
|
+
"frameworkVersion": "^6.0",
|
|
51
|
+
"runtimeVersion": ">=7.2.24",
|
|
52
|
+
"matchSignals": [
|
|
53
|
+
{ "type": "file-contains", "file": "wp-includes/version.php", "contains": "$wp_version" },
|
|
54
|
+
{ "type": "file-contains", "file": "wp-config.php", "contains": "DB_NAME" },
|
|
55
|
+
{ "type": "directory-exists", "path": "wp-content" },
|
|
56
|
+
{ "type": "directory-exists", "path": "wp-includes" },
|
|
57
|
+
{ "type": "directory-exists", "path": "wp-admin" }
|
|
58
|
+
],
|
|
59
|
+
"minMatchScore": 3,
|
|
60
|
+
"knowledgePath": "frameworks/php/wordpress/core",
|
|
61
|
+
"files": ["profile.json", "structure.md"],
|
|
62
|
+
"lastUpdated": "2026-05-03"
|
|
63
|
+
}
|
|
64
|
+
]
|
|
65
|
+
}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# Skill: Module Codebase (Perfex Module)
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
This skill is used to create and manage codebase structure for Perfex CRM modules following Perfex best practices.
|
|
6
|
+
|
|
7
|
+
## When to Use
|
|
8
|
+
|
|
9
|
+
- When creating a new module for Perfex CRM
|
|
10
|
+
- When refactoring existing module structure
|
|
11
|
+
- When ensuring module follows Perfex conventions
|
|
12
|
+
- When creating standard folder and file structure for module
|
|
13
|
+
|
|
14
|
+
## Step-by-Step Process
|
|
15
|
+
|
|
16
|
+
### Step 1: Analyze Requirements
|
|
17
|
+
- Identify main functionality of module
|
|
18
|
+
- Identify required database tables
|
|
19
|
+
- Identify hooks and filters to use
|
|
20
|
+
- Identify permissions to create
|
|
21
|
+
|
|
22
|
+
### Step 2: Scaffold Structure
|
|
23
|
+
- Run script: `scripts/scaffold-module.sh <module-name>`
|
|
24
|
+
- Script will create standard folder structure:
|
|
25
|
+
- `modules/<module-name>/`
|
|
26
|
+
- `modules/<module-name>/controllers/`
|
|
27
|
+
- `modules/<module-name>/models/`
|
|
28
|
+
- `modules/<module-name>/views/`
|
|
29
|
+
- `modules/<module-name>/language/`
|
|
30
|
+
- `modules/<module-name>/assets/`
|
|
31
|
+
- Copy templates to correct locations
|
|
32
|
+
|
|
33
|
+
### Step 3: Configure Module
|
|
34
|
+
- Fill information in `module-config.php` (from template)
|
|
35
|
+
- Register module in Perfex system
|
|
36
|
+
- Set up permissions and menu items
|
|
37
|
+
|
|
38
|
+
### Step 4: Implement Core Logic
|
|
39
|
+
- Create controllers following Perfex structure
|
|
40
|
+
- Create models with Eloquent patterns
|
|
41
|
+
- Implement hooks and filters
|
|
42
|
+
- Create database migrations
|
|
43
|
+
|
|
44
|
+
### Step 5: Testing & Documentation
|
|
45
|
+
- Test module with Perfex core
|
|
46
|
+
- Write documentation (use documents skill)
|
|
47
|
+
- Create user guide (use documents skill)
|
|
48
|
+
|
|
49
|
+
## Required Input
|
|
50
|
+
|
|
51
|
+
- **Module name**: Module name (kebab-case, e.g., `category-management`)
|
|
52
|
+
- **Module description**: Module functionality description
|
|
53
|
+
- **Database tables**: List of tables to create
|
|
54
|
+
- **Hooks required**: List of hooks to implement
|
|
55
|
+
- **Permissions**: List of permissions to create
|
|
56
|
+
- **Menu items**: List of menu items to add
|
|
57
|
+
|
|
58
|
+
## Expected Output
|
|
59
|
+
|
|
60
|
+
- Complete module folder structure
|
|
61
|
+
- Fully configured files
|
|
62
|
+
- Database migrations
|
|
63
|
+
- Module registration code
|
|
64
|
+
- Basic documentation structure
|
|
65
|
+
|
|
66
|
+
## Tone & Rules
|
|
67
|
+
|
|
68
|
+
### Code Style
|
|
69
|
+
- Follow PSR-12 coding standards
|
|
70
|
+
- Use camelCase for functions
|
|
71
|
+
- Use PascalCase for classes
|
|
72
|
+
- Comment in English
|
|
73
|
+
|
|
74
|
+
### Naming Conventions
|
|
75
|
+
- Module folder: `perfex-<module-name>`
|
|
76
|
+
- Class names: `Perfex<ModuleName>`
|
|
77
|
+
- Function names: `perfex_<module_name>_<action>`
|
|
78
|
+
- Database tables: `tbl<ModuleName>`
|
|
79
|
+
|
|
80
|
+
### Limitations
|
|
81
|
+
- ❌ DO NOT create global functions (except hooks)
|
|
82
|
+
- ❌ DO NOT hardcode database credentials
|
|
83
|
+
- ❌ DO NOT bypass Perfex permission system
|
|
84
|
+
- ❌ DO NOT modify core Perfex files
|
|
85
|
+
- ❌ DO NOT use deprecated Perfex APIs
|
|
86
|
+
|
|
87
|
+
## Available Templates
|
|
88
|
+
|
|
89
|
+
- `templates/module-structure.php` - Basic module structure
|
|
90
|
+
- `templates/module-config.php` - Module configuration file
|
|
91
|
+
- `templates/module-hooks.php` - Template for hooks
|
|
92
|
+
- `templates/module-migration.php` - Database migration template
|
|
93
|
+
|
|
94
|
+
## Available Scripts
|
|
95
|
+
|
|
96
|
+
- `scripts/scaffold-module.sh` - Automatically create module structure
|
|
97
|
+
|
|
98
|
+
## Examples
|
|
99
|
+
|
|
100
|
+
See `examples/` directory for reference:
|
|
101
|
+
- `good-module-structure/` - Example of well-organized module
|
|
102
|
+
- `bad-module-structure/` - Example to avoid
|
|
103
|
+
|
|
104
|
+
## Links to Other Skills
|
|
105
|
+
|
|
106
|
+
- **documents**: Use to create technical docs and user guide
|
|
107
|
+
- **ui-ux**: Use when module has admin interface
|
|
108
|
+
- **content-optimization**: Use for module marketing pages
|
|
109
|
+
- **module-registration**: Use to register module with Perfex
|
|
110
|
+
- **permission-group**: Use to create permissions for module
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: project-memory
|
|
3
|
+
description: Complementary project memory system for AI agents. Records observations, decisions, and session summaries to maintain context across development sessions. Prevents duplicate work, tracks architectural decisions, and enables token-efficient context retrieval.
|
|
4
|
+
projectType: all
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Project Memory Skill
|
|
8
|
+
|
|
9
|
+
## Purpose
|
|
10
|
+
|
|
11
|
+
Enable AI agents to maintain **persistent project context** across sessions using a complementary (non-intrusive) approach. The memory system records what was done, what was learned, and what decisions were made — so future sessions start with relevant context instead of re-reading the entire codebase.
|
|
12
|
+
|
|
13
|
+
## When to Use
|
|
14
|
+
|
|
15
|
+
- **Before implementing a new feature**: Search memory to check if similar work was done before
|
|
16
|
+
- **After completing a significant task**: Log an observation to record what was done
|
|
17
|
+
- **At the end of a session**: Summarize the session for future reference
|
|
18
|
+
- **When starting a complex session**: Read context to understand project history
|
|
19
|
+
|
|
20
|
+
## Complementary Approach
|
|
21
|
+
|
|
22
|
+
> **This skill is COMPLEMENTARY, not mandatory.** The AI agent uses memory WHEN USEFUL, not at every step.
|
|
23
|
+
>
|
|
24
|
+
> - Simple tasks (fix typo, format code): Skip memory entirely → 0 token overhead
|
|
25
|
+
> - Complex tasks (new feature, architecture change): Use memory → save 10-30x tokens vs re-reading code
|
|
26
|
+
|
|
27
|
+
## Available Commands
|
|
28
|
+
|
|
29
|
+
### 1. Log an Observation (Post-Task)
|
|
30
|
+
Record what was done after completing a significant task:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
heraspec memory log \
|
|
34
|
+
--type <decision|bugfix|feature|refactor|discovery|change> \
|
|
35
|
+
--title "Short descriptive title" \
|
|
36
|
+
--narrative "Detailed description of what was done and why" \
|
|
37
|
+
--concepts "tag1,tag2,tag3" \
|
|
38
|
+
--files-modified "src/file1.ts,src/file2.ts"
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
**Observation types:**
|
|
42
|
+
| Type | Icon | When to Use |
|
|
43
|
+
|------|------|------------|
|
|
44
|
+
| `decision` | ⚖️ | Architecture or design decisions with rationale |
|
|
45
|
+
| `bugfix` | 🔴 | Bug fixes with root cause |
|
|
46
|
+
| `feature` | 🟢 | New feature implementations |
|
|
47
|
+
| `refactor` | 🔄 | Code restructuring or optimization |
|
|
48
|
+
| `discovery` | 🔵 | Important findings about codebase or behavior |
|
|
49
|
+
| `change` | ✅ | General code changes |
|
|
50
|
+
|
|
51
|
+
### 2. Search Memory (Pre-Implementation)
|
|
52
|
+
Check if related work exists before implementing something new:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
heraspec memory search "authentication middleware"
|
|
56
|
+
heraspec memory search --type feature --concepts "auth,login"
|
|
57
|
+
heraspec memory search --id 42 # Get full details of observation #42
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### 3. Generate Context (Session Start)
|
|
61
|
+
Get a summary of recent project activity:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
heraspec memory context # Print to stdout
|
|
65
|
+
heraspec memory context --output file # Write to heraspec/memory/context.md
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### 4. Summarize Session (Session End)
|
|
69
|
+
Record what was accomplished in this session:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
heraspec memory summarize \
|
|
73
|
+
--request "What the user asked for" \
|
|
74
|
+
--completed "What was done" \
|
|
75
|
+
--learned "Key insights discovered" \
|
|
76
|
+
--next-steps "What remains to be done" \
|
|
77
|
+
--files-edited "src/file1.ts,src/file2.ts"
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### 5. View Status
|
|
81
|
+
Check memory statistics:
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
heraspec memory status # Observation count, top concepts, top files
|
|
85
|
+
heraspec memory timeline # Chronological view of activity
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### 6. Token Analytics Report
|
|
89
|
+
View detailed token usage vs savings comparison per project:
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
heraspec memory analytics # Table + chart of token economics
|
|
93
|
+
heraspec memory analytics --history # Includes 13 latest database size changes
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Output includes:
|
|
97
|
+
- **Table**: Project name, Operations count, Tokens With Memory, Tokens Without Memory, Savings %, **DB Size**
|
|
98
|
+
- **Bar Chart**: Visual comparison of tokens avoided per project
|
|
99
|
+
- **Totals**: Aggregated savings across all projects
|
|
100
|
+
- **History (Optional)**: A chronological delta chart of how the `.db` file size has changed over time.
|
|
101
|
+
|
|
102
|
+
### 7. Maintenance
|
|
103
|
+
```bash
|
|
104
|
+
heraspec memory prune 90 # Delete observations older than 90 days
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## Workflow for AI Agents
|
|
108
|
+
|
|
109
|
+
### When to Use Memory (Decision Tree)
|
|
110
|
+
|
|
111
|
+
```
|
|
112
|
+
Receive task from user
|
|
113
|
+
├── Is it a simple/trivial task? → Skip memory, just do it
|
|
114
|
+
├── Is it a new feature or significant change?
|
|
115
|
+
│ ├── Search memory: "heraspec memory search <relevant keywords>"
|
|
116
|
+
│ ├── Results found? → Read relevant observations, avoid duplicating work
|
|
117
|
+
│ └── No results? → Proceed normally
|
|
118
|
+
├── After completing the task:
|
|
119
|
+
│ ├── Was it significant? → Log observation
|
|
120
|
+
│ └── Was it trivial? → Skip logging
|
|
121
|
+
└── End of session?
|
|
122
|
+
└── Multiple tasks completed? → Create session summary
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### Key Principles
|
|
126
|
+
|
|
127
|
+
1. **Don't force it**: Only use memory when it genuinely saves time or prevents mistakes
|
|
128
|
+
2. **Quality over quantity**: One detailed observation is better than ten shallow ones
|
|
129
|
+
3. **Concepts are crucial**: Good concept tags (`auth`, `database`, `api`, `ui`) make search effective
|
|
130
|
+
4. **Files matter**: Recording which files were modified helps future agents navigate
|
|
131
|
+
|
|
132
|
+
## Configuration
|
|
133
|
+
|
|
134
|
+
Memory configuration is stored in `heraspec/memory/config.json`:
|
|
135
|
+
|
|
136
|
+
```json
|
|
137
|
+
{
|
|
138
|
+
"totalObservationCount": 50,
|
|
139
|
+
"fullObservationCount": 5,
|
|
140
|
+
"sessionCount": 5,
|
|
141
|
+
"maxTokens": 6000,
|
|
142
|
+
"showLastSummary": true
|
|
143
|
+
}
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
## Token Economics
|
|
147
|
+
|
|
148
|
+
| Action | Token Cost | Token Savings |
|
|
149
|
+
|--------|-----------|---------------|
|
|
150
|
+
| Read context | ~2,000-4,000 | vs ~50,000-120,000 re-reading codebase |
|
|
151
|
+
| Search memory | ~500-1,000 | vs ~5,000-15,000 duplicate implementation |
|
|
152
|
+
| Log observation | ~200-500 | Investment for future sessions |
|
|
153
|
+
| Smart explore (outline) | ~1,000-2,000 | vs ~12,000+ full file read |
|
|
154
|
+
|
|
155
|
+
To view a live analytics dashboard of token savings, run:
|
|
156
|
+
```bash
|
|
157
|
+
heraspec memory analytics
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## Bootstrapping Existing Projects
|
|
161
|
+
|
|
162
|
+
If you are adding the `project-memory` skill to an older project that already has historical specs and changes (in `heraspec/specs/` and `heraspec/archives/`), you can bootstrap the memory system without writing any code.
|
|
163
|
+
|
|
164
|
+
Simply provide this prompt to the AI agent **once**:
|
|
165
|
+
|
|
166
|
+
```text
|
|
167
|
+
Use the project-memory skill.
|
|
168
|
+
Please bootstrap the project memory from all our existing specs and archives.
|
|
169
|
+
Open the folders: heraspec/specs/ and heraspec/archives/
|
|
170
|
+
For EVERY sub-folder/file inside, read it to understand the context, then run:
|
|
171
|
+
|
|
172
|
+
heraspec memory log \
|
|
173
|
+
--type feature \
|
|
174
|
+
--title "[Extract spec/change title]" \
|
|
175
|
+
--narrative "[Short summary of what was implemented]" \
|
|
176
|
+
--concepts "[Extract key tags/technologies]" \
|
|
177
|
+
--files-modified "[Extract affected files]"
|
|
178
|
+
|
|
179
|
+
Repeat this until all old specs are migrated into the memory system.
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
Alternatively, use the built-in **CLI command** (faster, no AI tokens spent):
|
|
183
|
+
```bash
|
|
184
|
+
heraspec memory bootstrap # Interactive — prompts for confirmation
|
|
185
|
+
heraspec memory bootstrap --yes # Non-interactive — auto-confirm
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
This command will automatically scan `heraspec/specs/`, `heraspec/archives/`, and `heraspec/changes/`, extract title/narrative/files from each markdown spec, and insert them into the memory database.
|
|
189
|
+
|
|
190
|
+
> **Note:** Duplicate titles are automatically skipped, so running the command multiple times is safe.
|
|
191
|
+
|
|
192
|
+
## Agent-Triggered Reporting
|
|
193
|
+
|
|
194
|
+
When the user asks the AI agent to view memory reports, analytics, or token savings — the agent should run the CLI command and return the output:
|
|
195
|
+
|
|
196
|
+
```text
|
|
197
|
+
User: "Show me the memory analytics report"
|
|
198
|
+
User: "How many tokens has the memory system saved?"
|
|
199
|
+
User: "Give me a token usage report"
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
**Agent action:** Execute the following command and display the output to the user:
|
|
203
|
+
```bash
|
|
204
|
+
heraspec memory analytics
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
For a quick status check:
|
|
208
|
+
```bash
|
|
209
|
+
heraspec memory status
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
For a timeline view:
|
|
213
|
+
```bash
|
|
214
|
+
heraspec memory timeline
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
## Limitations
|
|
218
|
+
|
|
219
|
+
- Memory is project-local (stored in `heraspec/memory/`)
|
|
220
|
+
- Requires `better-sqlite3` npm package
|
|
221
|
+
- FTS5 search is keyword-based, not semantic
|
|
222
|
+
- Agent must decide when to use memory (complementary approach)
|