@abarcenas/ai-workflow-template 1.23.0 → 1.26.0
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/.agents/instructions/agent-skill.instructions.md +18 -20
- package/.agents/instructions/agent.instructions.md +111 -570
- package/.agents/instructions/ai-prompt-engineering-safety.instructions.md +3 -3
- package/.agents/instructions/instructions.instructions.md +6 -7
- package/.agents/instructions/learned-knowledge.instructions.md +17 -41
- package/.agents/instructions/memory-bank.instructions.md +125 -17
- package/.agents/instructions/memory-schema.instructions.md +75 -0
- package/.agents/instructions/prompt.instructions.md +25 -30
- package/.agents/instructions/task-implementation.instructions.md +12 -5
- package/.agents/skills/architecture-blueprint-generator/SKILL.md +63 -18
- package/.agents/skills/context-map/SKILL.md +27 -4
- package/.agents/skills/conventional-commit/SKILL.md +2 -2
- package/.agents/skills/github-issues/SKILL.md +2 -2
- package/.agents/skills/graphify-framework-aware/SKILL.md +133 -0
- package/.agents/skills/graphify-framework-aware/references/framework-registry.md +95 -0
- package/.agents/skills/graphify-framework-aware/scripts/fw-exclude.py +425 -0
- package/.agents/skills/memory-search/SKILL.md +69 -0
- package/.agents/skills/microsoft-docs/SKILL.md +1 -1
- package/.agents/skills/polygot-test-agent/SKILL.md +0 -1
- package/.agents/skills/prompt-builder/SKILL.md +15 -14
- package/.husky/post-merge +10 -0
- package/.husky/pre-commit +2 -0
- package/AGENTS.md +54 -0
- package/README.md +177 -3
- package/memory-bank/.vocabulary.json +52 -0
- package/opencode.mcp.example.json +8 -1
- package/package.json +25 -5
- package/scripts/mcp-memory-server.js +243 -0
- package/scripts/memory-cli.js +110 -0
- package/scripts/memory-index.js +512 -0
- package/scripts/normalize-memory.js +349 -0
- package/scripts/sync.test.js +12 -0
- package/scripts/validate-memory-schema.js +190 -0
|
@@ -5,6 +5,9 @@ description: 'Comprehensive project architecture blueprint generator that analyz
|
|
|
5
5
|
|
|
6
6
|
# Comprehensive Project Architecture Blueprint Generator
|
|
7
7
|
|
|
8
|
+
> **Pre-discovery:** Load the `context-map` skill first to build a scoped file-level map via graphify. The context map feeds into the full blueprint below.
|
|
9
|
+
> **Graphify:** All codebase discovery uses `graphify query`, `graphify path`, and `graphify explain` against `graphify-out/graph.json`. Grep/glob/read are fallbacks only when graphify returns no results.
|
|
10
|
+
|
|
8
11
|
## Configuration Variables
|
|
9
12
|
${PROJECT_TYPE="Auto-detect|.NET|Java|React|Angular|Python|Node.js|Flutter|Other"} <!-- Primary technology -->
|
|
10
13
|
${ARCHITECTURE_PATTERN="Auto-detect|Clean Architecture|Microservices|Layered|MVVM|MVC|Hexagonal|Event-Driven|Serverless|Monolithic|Other"} <!-- Primary architectural pattern -->
|
|
@@ -19,18 +22,45 @@ ${FOCUS_ON_EXTENSIBILITY=true|false} <!-- Emphasize extension points and pattern
|
|
|
19
22
|
|
|
20
23
|
"Create a comprehensive 'Project_Architecture_Blueprint.md' document that thoroughly analyzes the architectural patterns in the codebase to serve as a definitive reference for maintaining architectural consistency. Use the following approach:
|
|
21
24
|
|
|
25
|
+
### 0. Graphify-First Discovery
|
|
26
|
+
|
|
27
|
+
Before any grep, glob, or manual file reads, leverage the project's knowledge graph for token-efficient discovery:
|
|
28
|
+
|
|
29
|
+
**0a. Bootstrap the graph if needed:**
|
|
30
|
+
If `graphify-out/graph.json` does not exist, generate it first:
|
|
31
|
+
```
|
|
32
|
+
graphify .
|
|
33
|
+
```
|
|
34
|
+
This builds the knowledge graph with AST-extracted relationships and community structure. All subsequent discovery steps query the graph.
|
|
35
|
+
|
|
36
|
+
**0b. Architecture detection via graph queries (primary):**
|
|
37
|
+
- `graphify query "architecture pattern layers dependencies"` — discover architectural structure
|
|
38
|
+
- `graphify query "technology stack frameworks packages imports"` — detect tech stack
|
|
39
|
+
- `graphify query "key interfaces abstractions design patterns"` — identify core abstractions
|
|
40
|
+
- `graphify query "cross-cutting concerns authentication logging configuration"` — find cross-cutting concern implementations
|
|
41
|
+
|
|
42
|
+
**0c. Relationship mapping via graph (primary):**
|
|
43
|
+
- `graphify path "<ComponentA>" "<ComponentB>"` — trace dependency chains between subsystems
|
|
44
|
+
- `graphify explain "<component>"` — deep-dive on a single node's connections and patterns
|
|
45
|
+
- `graphify query "circular dependency"` — detect layer violations and dependency cycles
|
|
46
|
+
|
|
47
|
+
**0d. Broad architecture scan:**
|
|
48
|
+
Read `graphify-out/GRAPH_REPORT.md` `## Communities` and `## God Nodes` sections for community structure and hub nodes. Use `graphify-out/wiki/index.md` for agent-navigable wiki if it exists.
|
|
49
|
+
|
|
50
|
+
**0e. Fallback to grep/glob/read:**
|
|
51
|
+
Only when graphify queries return no relevant results (rare for well-structured codebases), fall back to grep/glob/file-reads. Graphify subgraph results are typically 200-800 tokens vs. 3000+ tokens for raw grep output.
|
|
52
|
+
|
|
22
53
|
### 1. Architecture Detection and Analysis
|
|
23
|
-
- ${PROJECT_TYPE == "Auto-detect" ? "
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
-
|
|
30
|
-
-
|
|
31
|
-
-
|
|
32
|
-
-
|
|
33
|
-
- Communication mechanisms between components" : "Document how the ${ARCHITECTURE_PATTERN} architecture is implemented"}
|
|
54
|
+
- ${PROJECT_TYPE == "Auto-detect" ? "Use graphify queries to identify all technology stacks and frameworks in use:
|
|
55
|
+
- `graphify query \"technology stack frameworks dependencies imports\"` for tech stack
|
|
56
|
+
- `graphify query \"build configuration deployment infrastructure\"` for build/deploy config
|
|
57
|
+
- Read `graphify-out/GRAPH_REPORT.md` `## Communities` for community-level technology groupings" : "Focus on ${PROJECT_TYPE} specific patterns and practices"}
|
|
58
|
+
|
|
59
|
+
- ${ARCHITECTURE_PATTERN == "Auto-detect" ? "Determine the architectural pattern(s) by querying the graph structure:
|
|
60
|
+
- `graphify query \"layer dependency direction boundaries\"` reveals dependency flow
|
|
61
|
+
- `graphify query \"interfaces abstractions contract segregation\"` reveals interface patterns
|
|
62
|
+
- `graphify path` between key subsystems reveals communication mechanisms
|
|
63
|
+
- `graphify explain \"<layer-name>\"` deep-dives into each architectural layer" : "Document how the ${ARCHITECTURE_PATTERN} architecture is implemented"}
|
|
34
64
|
|
|
35
65
|
### 2. Architectural Overview
|
|
36
66
|
- Provide a clear, concise explanation of the overall architectural approach
|
|
@@ -39,17 +69,29 @@ ${FOCUS_ON_EXTENSIBILITY=true|false} <!-- Emphasize extension points and pattern
|
|
|
39
69
|
- Note any hybrid architectural patterns or adaptations of standard patterns
|
|
40
70
|
|
|
41
71
|
### 3. Architecture Visualization
|
|
72
|
+
|
|
73
|
+
Extract component relationships from the graph before building diagrams:
|
|
74
|
+
- `graphify query "component subsystem module relationships dependencies"` — discover subsystems
|
|
75
|
+
- `graphify path "<SubsystemA>" "<SubsystemB>"` — verify dependency directions between specific subsystems
|
|
76
|
+
- `graphify explain "<subsystem>"` — deep-dive into a subsystem's internal structure and connections
|
|
77
|
+
- Use `graphify-out/GRAPH_REPORT.md` `## Surprising Connections` for non-obvious cross-boundary links
|
|
78
|
+
|
|
42
79
|
${DIAGRAM_TYPE != "None" ? `Create ${DIAGRAM_TYPE} diagrams at multiple levels of abstraction:
|
|
43
|
-
- High-level architectural overview showing major subsystems
|
|
44
|
-
- Component interaction diagrams showing relationships and dependencies
|
|
45
|
-
- Data flow diagrams showing how information moves through the system
|
|
80
|
+
- High-level architectural overview showing major subsystems (from graph community structure)
|
|
81
|
+
- Component interaction diagrams showing relationships and dependencies (from graph edges)
|
|
82
|
+
- Data flow diagrams showing how information moves through the system (from `graphify path` traces)
|
|
46
83
|
- Ensure diagrams accurately reflect the actual implementation, not theoretical patterns` : "Describe the component relationships based on actual code dependencies, providing clear textual explanations of:
|
|
47
|
-
- Subsystem organization and boundaries
|
|
48
|
-
- Dependency directions and component interactions
|
|
49
|
-
- Data flow and process sequences"}
|
|
84
|
+
- Subsystem organization and boundaries (from graph communities)
|
|
85
|
+
- Dependency directions and component interactions (from graph edges)
|
|
86
|
+
- Data flow and process sequences (from `graphify path` traces)"}
|
|
50
87
|
|
|
51
88
|
### 4. Core Architectural Components
|
|
52
|
-
|
|
89
|
+
Discover components via the graph first, then deep-dive:
|
|
90
|
+
- Identify major components from `graphify-out/GRAPH_REPORT.md` `## God Nodes` (hub nodes with highest degree)
|
|
91
|
+
- Use `graphify explain "<component>"` to get all connected nodes and relationships for each god node
|
|
92
|
+
- Use `graphify path "<component>" "<other>"` to trace specific interaction patterns between components
|
|
93
|
+
|
|
94
|
+
For each architectural component discovered:
|
|
53
95
|
|
|
54
96
|
- **Purpose and Responsibility**:
|
|
55
97
|
- Primary function within the architecture
|
|
@@ -321,6 +363,9 @@ Create a clear architectural guide for implementing new features:
|
|
|
321
363
|
|
|
322
364
|
Include information about when this blueprint was generated and recommendations for keeping it updated as the architecture evolves.
|
|
323
365
|
|
|
366
|
+
### Post-Generation: Keep Graph Current
|
|
367
|
+
After the blueprint is generated, run `graphify update .` to incrementally re-extract any changed files. This keeps the graph aligned with newly documented architecture understanding, so future queries (`graphify query`, `graphify path`, `graphify explain`) return up-to-date results without rebuilding the entire graph.
|
|
368
|
+
|
|
324
369
|
### ${INCLUDES_DECISION_RECORDS ? "18" : INCLUDES_CODE_EXAMPLES ? "17" : "16"}. Populate Agent Knowledge Base
|
|
325
370
|
|
|
326
371
|
Write the discovered architecture details into the persistent knowledge system so all orchestrator agents (researcher, architect, implementer, coder, tracker) inherit this context without rediscovery:
|
|
@@ -5,6 +5,9 @@ description: "Generate a map of all files relevant to a task before making chang
|
|
|
5
5
|
|
|
6
6
|
# Context Map
|
|
7
7
|
|
|
8
|
+
> **Wired into:** `architecture-blueprint-generator` loads this skill as its pre-discovery step to build a scoped file-level map before generating the full blueprint.
|
|
9
|
+
> **Graphify:** All discovery uses `graphify query`, `graphify path`, and `graphify explain` against `graphify-out/graph.json`. Grep/glob are fallbacks only.
|
|
10
|
+
|
|
8
11
|
Before implementing any changes, analyze the codebase and create a context map.
|
|
9
12
|
|
|
10
13
|
## Task
|
|
@@ -13,10 +16,30 @@ Before implementing any changes, analyze the codebase and create a context map.
|
|
|
13
16
|
|
|
14
17
|
## Instructions
|
|
15
18
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
### Graphify-First Discovery
|
|
20
|
+
|
|
21
|
+
1. **Bootstrap graph if needed:** Check `graphify-out/graph.json`. If missing, run `graphify .` first. The graph provides relationship data that grep alone cannot discover.
|
|
22
|
+
|
|
23
|
+
2. **Discover related files:** Use `graphify query "{{task_description}}"` to find files and nodes relevant to the task. For multi-concept tasks, run separate queries per concept and merge results.
|
|
24
|
+
|
|
25
|
+
3. **Identify direct dependencies:** Use `graphify path "<source>" "<target>"` between key components to trace dependency chains. This reveals import/export relationships without scanning every file.
|
|
26
|
+
|
|
27
|
+
4. **Find related tests:** Use `graphify query "test spec <task_keywords>"` to surface test files connected to the relevant components.
|
|
28
|
+
|
|
29
|
+
5. **Discover similar patterns:** Use `graphify explain "<pattern_or_component>"` to find existing implementations and connected nodes that follow the same pattern.
|
|
30
|
+
|
|
31
|
+
### Fallback (graphify unavailable or no results)
|
|
32
|
+
|
|
33
|
+
If `graphify-out/graph.json` is missing and cannot be generated, or queries return no results:
|
|
34
|
+
|
|
35
|
+
1. Search the codebase for files related to this task (grep/glob)
|
|
36
|
+
2. Identify direct dependencies (imports/exports via grep)
|
|
37
|
+
3. Find related tests (glob `**/*.test.*` / `**/*.spec.*`)
|
|
38
|
+
4. Look for similar patterns in existing code (grep for class/function patterns)
|
|
39
|
+
|
|
40
|
+
### Post-Generation
|
|
41
|
+
|
|
42
|
+
After the context map is created, run `graphify update .` to sync the graph with any newly identified relationships. This keeps future context-map invocations efficient.
|
|
20
43
|
|
|
21
44
|
## Output Format
|
|
22
45
|
|
|
@@ -17,13 +17,13 @@ description: "Prompt and workflow for generating conventional commit messages us
|
|
|
17
17
|
2. Run `git diff` or `git diff --cached` to inspect changes.
|
|
18
18
|
3. Stage your changes with `git add <file>`.
|
|
19
19
|
4. Construct your commit message using the following XML structure.
|
|
20
|
-
5.
|
|
20
|
+
5. Run the following command in your terminal:
|
|
21
21
|
|
|
22
22
|
```bash
|
|
23
23
|
git commit -m "type(scope): description"
|
|
24
24
|
```
|
|
25
25
|
|
|
26
|
-
6.
|
|
26
|
+
6. Run the commit command in your terminal.
|
|
27
27
|
|
|
28
28
|
### Commit Message Structure
|
|
29
29
|
|
|
@@ -87,7 +87,7 @@ State values: `open`, `closed`
|
|
|
87
87
|
```json
|
|
88
88
|
{
|
|
89
89
|
"owner": "github",
|
|
90
|
-
"repo": "
|
|
90
|
+
"repo": "example-project",
|
|
91
91
|
"title": "[Bug] Login page crashes when using SSO",
|
|
92
92
|
"body": "## Description\nThe login page crashes when users attempt to authenticate using SSO.\n\n## Steps to Reproduce\n1. Navigate to login page\n2. Click 'Sign in with SSO'\n3. Page crashes\n\n## Expected Behavior\nSSO authentication should complete and redirect to dashboard.\n\n## Actual Behavior\nPage becomes unresponsive and displays error.\n\n## Environment\n- Browser: [To be filled]\n- OS: [To be filled]\n\n## Additional Context\nReported by user.",
|
|
93
93
|
"labels": ["bug"]
|
|
@@ -103,7 +103,7 @@ State values: `open`, `closed`
|
|
|
103
103
|
```json
|
|
104
104
|
{
|
|
105
105
|
"owner": "github",
|
|
106
|
-
"repo": "
|
|
106
|
+
"repo": "example-project",
|
|
107
107
|
"title": "[Feature] Add dark mode support",
|
|
108
108
|
"body": "## Summary\nAdd dark mode theme option for improved user experience and accessibility.\n\n## Motivation\n- Reduces eye strain in low-light environments\n- Increasingly expected by users\n- Improves accessibility\n\n## Proposed Solution\nImplement theme toggle with system preference detection.\n\n## Acceptance Criteria\n- [ ] Toggle switch in settings\n- [ ] Persists user preference\n- [ ] Respects system preference by default\n- [ ] All UI components support both themes\n\n## Alternatives Considered\nNone specified.\n\n## Additional Context\nHigh priority request.",
|
|
109
109
|
"labels": ["enhancement", "high-priority"]
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: graphify-framework-aware
|
|
3
|
+
description: Prepares framework-aware exclusions before graphify knowledge graph generation. Invoke alongside /graphify. Automatically detects Angular, Hugo, Next.js, Svelte, Jekyll, Flutter, WordPress, and Docusaurus projects and excludes their boilerplate files so the graph focuses on your custom code. Triggers on: /graphify, graphify, knowledge graph, codebase graph.
|
|
4
|
+
license: MIT
|
|
5
|
+
allowed-tools: Bash
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# graphify-framework-aware
|
|
9
|
+
|
|
10
|
+
Automatically detects your project's framework and configures `.graphifyignore` to exclude framework boilerplate so graphify's knowledge graph focuses on your custom code.
|
|
11
|
+
|
|
12
|
+
## When to Use
|
|
13
|
+
|
|
14
|
+
Invoke this skill BEFORE running the standard `/graphify` pipeline. The skill is idempotent — running it multiple times is safe, and it will not duplicate patterns.
|
|
15
|
+
|
|
16
|
+
Use when:
|
|
17
|
+
- Running `/graphify` on a project for the first time
|
|
18
|
+
- Running `/graphify --update` to rebuild an existing graph
|
|
19
|
+
- After adding a new framework to a project
|
|
20
|
+
- After changing build tooling or project structure
|
|
21
|
+
|
|
22
|
+
Skip when:
|
|
23
|
+
- The project has no supported framework markers
|
|
24
|
+
- The `.graphifyignore` was already generated and the project structure hasn't changed
|
|
25
|
+
- Graph is already built and framework exclusions were already applied
|
|
26
|
+
|
|
27
|
+
## Workflow
|
|
28
|
+
|
|
29
|
+
### Step 1: Apply framework exclusions
|
|
30
|
+
|
|
31
|
+
Run the detection and apply script:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
python3 <skill-base>/scripts/fw-exclude.py apply <project-path>
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
This script:
|
|
38
|
+
1. Scans the project root for framework marker files (e.g., `angular.json`, `hugo.toml`)
|
|
39
|
+
2. Generates appropriate `.graphifyignore` patterns for each detected framework
|
|
40
|
+
3. Idempotently writes/updates `.graphifyignore` between marker comments
|
|
41
|
+
|
|
42
|
+
The script outputs a one-line summary:
|
|
43
|
+
```
|
|
44
|
+
graphify-framework-aware: detected angular, nextjs — wrote 8 exclusion patterns to .graphifyignore
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
If no frameworks are detected, the script exits with code 2 and prints:
|
|
48
|
+
```
|
|
49
|
+
No supported frameworks detected.
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Step 2: Inspect the result (optional)
|
|
53
|
+
|
|
54
|
+
To preview what will be excluded without modifying files:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
python3 <skill-base>/scripts/fw-exclude.py show <project-path>
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
To see detected frameworks as JSON:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
python3 <skill-base>/scripts/fw-exclude.py detect <project-path>
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Step 3: Proceed with graphify
|
|
67
|
+
|
|
68
|
+
After exclusions are applied, invoke the standard graphify pipeline:
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
invoke skill: "graphify"
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
The `.graphifyignore` file will be read by graphify's detection step, and framework boilerplate files will be excluded from the knowledge graph.
|
|
75
|
+
|
|
76
|
+
### Step 4: Verify (optional)
|
|
77
|
+
|
|
78
|
+
Check the generated `.graphifyignore` at the project root. The framework patterns are in a clearly delimited section:
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
# ===== graphify-framework-aware (auto-generated) =====
|
|
82
|
+
# auto-detected framework: angular
|
|
83
|
+
**/*.spec.ts
|
|
84
|
+
**/*.harness.ts
|
|
85
|
+
e2e/
|
|
86
|
+
...
|
|
87
|
+
# ===== end graphify-framework-aware =====
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
User-added patterns outside this block are never modified. To re-include a framework-excluded path, add a `!` negation pattern anywhere *after* the marker block (graphify reads `.graphifyignore` with last-match-wins semantics).
|
|
91
|
+
|
|
92
|
+
## Supported Frameworks
|
|
93
|
+
|
|
94
|
+
| Framework | Marker |
|
|
95
|
+
|-----------|--------|
|
|
96
|
+
| Angular | `angular.json` |
|
|
97
|
+
| Next.js | `next.config.{js,ts,mjs}` |
|
|
98
|
+
| Svelte | `svelte.config.js` |
|
|
99
|
+
| Hugo | `hugo.{toml,yaml,json}` |
|
|
100
|
+
| Jekyll | `_config.yml` |
|
|
101
|
+
| Docusaurus | `docusaurus.config.{js,ts}` |
|
|
102
|
+
| Flutter | `pubspec.yaml` (content-verified) |
|
|
103
|
+
| WordPress | `wp-config.php` |
|
|
104
|
+
|
|
105
|
+
See [Framework Registry](./references/framework-registry.md) for the full list of exclusion patterns per framework and instructions for adding new frameworks.
|
|
106
|
+
|
|
107
|
+
## Script Reference
|
|
108
|
+
|
|
109
|
+
[`scripts/fw-exclude.py`](./scripts/fw-exclude.py) — Python 3.10+, no dependencies beyond stdlib.
|
|
110
|
+
|
|
111
|
+
```
|
|
112
|
+
usage: fw-exclude.py <detect|show|apply> <project-path>
|
|
113
|
+
|
|
114
|
+
detect Print JSON of detected frameworks and their markers.
|
|
115
|
+
show Print FW exclusion patterns (dry-run, no files written).
|
|
116
|
+
apply Idempotently write/update .graphifyignore with FW patterns.
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
## Interaction with graphify
|
|
120
|
+
|
|
121
|
+
- graphify reads `.graphifyignore` (and falls back to `.gitignore`) during its `detect()` step
|
|
122
|
+
- Framework patterns are appended with last-match-wins semantics — user `!` patterns override them
|
|
123
|
+
- Directories already skipped by graphify's built-in `_SKIP_DIRS` (`node_modules/`, `.next/`, `.angular/`, `dist/`, `build/`, etc.) are NOT duplicated in the generated patterns
|
|
124
|
+
- This skill must run **before** invoking the graphify skill so the `.graphifyignore` is in place when graphify scans files
|
|
125
|
+
|
|
126
|
+
## Troubleshooting
|
|
127
|
+
|
|
128
|
+
| Issue | Solution |
|
|
129
|
+
|-------|----------|
|
|
130
|
+
| "No supported frameworks detected" | Project may use an unsupported framework. Add markers to `fw-exclude.py` or create `.graphifyignore` manually. |
|
|
131
|
+
| Too many files excluded | Check `.graphifyignore` marker block. Add `!` negation patterns after the block to re-include. |
|
|
132
|
+
| `pubspec.yaml` falsely detected as Flutter | Script checks for `flutter` keyword in the file content. Add `!` patterns if needed. |
|
|
133
|
+
| Hugo `config.toml` not detected | Script verifies content for Hugo-specific keys (`baseURL`, `title`). Rename to `hugo.toml` or add patterns manually. |
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# Framework Exclusion Registry
|
|
2
|
+
|
|
3
|
+
This document defines the framework detection markers and exclusion patterns used by `graphify-framework-aware`. Each framework entry includes its detection markers, default exclusions, and any special heuristics applied.
|
|
4
|
+
|
|
5
|
+
## Adding a New Framework
|
|
6
|
+
|
|
7
|
+
1. Add detection marker(s) to `FRAMEWORK_MARKERS` in `scripts/fw-exclude.py`.
|
|
8
|
+
2. Add exclusion patterns to `FRAMEWORK_EXCLUDES`.
|
|
9
|
+
3. If complex detection logic is needed (e.g., Hugo theme detection), add it to the `_post_process_excludes()` function.
|
|
10
|
+
4. Update this document with the new framework's entry.
|
|
11
|
+
|
|
12
|
+
## Supported Frameworks
|
|
13
|
+
|
|
14
|
+
### Angular
|
|
15
|
+
|
|
16
|
+
| Attribute | Value |
|
|
17
|
+
|-----------|-------|
|
|
18
|
+
| **Marker file** | `angular.json` |
|
|
19
|
+
| **Excluded** | `**/*.spec.ts`, `**/*.harness.ts`, `e2e/`, `src/environments/`, `karma.conf.js`, `src/test.ts` |
|
|
20
|
+
| **Kept** | `src/app/` (user components, services, modules), `src/assets/` |
|
|
21
|
+
| **Already handled by graphify** | `.angular/`, `node_modules/`, `dist/` |
|
|
22
|
+
|
|
23
|
+
### Next.js
|
|
24
|
+
|
|
25
|
+
| Attribute | Value |
|
|
26
|
+
|-----------|-------|
|
|
27
|
+
| **Marker file** | `next.config.js`, `next.config.ts`, `next.config.mjs` |
|
|
28
|
+
| **Excluded** | `next-env.d.ts`, `out/` |
|
|
29
|
+
| **Kept** | `src/app/`, `src/pages/`, `src/components/` |
|
|
30
|
+
| **Already handled by graphify** | `.next/`, `node_modules/` |
|
|
31
|
+
|
|
32
|
+
### Svelte / SvelteKit
|
|
33
|
+
|
|
34
|
+
| Attribute | Value |
|
|
35
|
+
|-----------|-------|
|
|
36
|
+
| **Marker file** | `svelte.config.js` |
|
|
37
|
+
| **Excluded** | `build/`, `**/*.test.ts` |
|
|
38
|
+
| **Kept** | `src/` (all user code) |
|
|
39
|
+
| **Already handled by graphify** | `.svelte-kit/`, `node_modules/` |
|
|
40
|
+
|
|
41
|
+
### Hugo
|
|
42
|
+
|
|
43
|
+
| Attribute | Value |
|
|
44
|
+
|-----------|-------|
|
|
45
|
+
| **Marker file** | `hugo.toml`, `hugo.yaml`, `hugo.json` |
|
|
46
|
+
| **Excluded (always)** | `public/`, `resources/` |
|
|
47
|
+
| **Excluded (conditional)** | `archetypes/` (unless modified by user), `layouts/` (unless user has custom layouts at root), theme-internal dirs (when theme is vendored via git submodule) |
|
|
48
|
+
| **Kept** | `content/`, `data/`, `static/`, `assets/`, user `layouts/` with custom templates |
|
|
49
|
+
| **Heuristics** | Detects git submodules in `themes/` to exclude theme boilerplate. Detects `layouts/` structure at project root to determine if user has custom templates. |
|
|
50
|
+
|
|
51
|
+
### Jekyll
|
|
52
|
+
|
|
53
|
+
| Attribute | Value |
|
|
54
|
+
|-----------|-------|
|
|
55
|
+
| **Marker file** | `_config.yml` |
|
|
56
|
+
| **Excluded** | `_site/`, `.jekyll-cache/`, `.jekyll-metadata` |
|
|
57
|
+
| **Kept** | `_posts/`, `_pages/`, `_data/`, `_includes/`, `_layouts/`, `_sass/`, `assets/` |
|
|
58
|
+
| **Already handled by graphify** | `node_modules/` |
|
|
59
|
+
|
|
60
|
+
### Docusaurus
|
|
61
|
+
|
|
62
|
+
| Attribute | Value |
|
|
63
|
+
|-----------|-------|
|
|
64
|
+
| **Marker file** | `docusaurus.config.js`, `docusaurus.config.ts` |
|
|
65
|
+
| **Excluded** | `.docusaurus/`, `build/` |
|
|
66
|
+
| **Kept** | `docs/`, `src/`, `blog/`, `static/`, `sidebars.js` |
|
|
67
|
+
| **Already handled by graphify** | `node_modules/` |
|
|
68
|
+
|
|
69
|
+
### Flutter
|
|
70
|
+
|
|
71
|
+
| Attribute | Value |
|
|
72
|
+
|-----------|-------|
|
|
73
|
+
| **Marker file** | `pubspec.yaml` (content-verified for `flutter` keyword) |
|
|
74
|
+
| **Excluded** | `.dart_tool/`, `build/`, `.flutter-plugins`, `.flutter-plugins-dependencies` |
|
|
75
|
+
| **Kept** | `lib/` (user code), `test/` (user tests) |
|
|
76
|
+
| **Already handled by graphify** | — |
|
|
77
|
+
|
|
78
|
+
### WordPress
|
|
79
|
+
|
|
80
|
+
| Attribute | Value |
|
|
81
|
+
|-----------|-------|
|
|
82
|
+
| **Marker file** | `wp-config.php` |
|
|
83
|
+
| **Excluded** | `wp-admin/`, `wp-includes/`, `wp-content/languages/`, `wp-content/upgrade/` |
|
|
84
|
+
| **Kept** | `wp-content/themes/` (custom themes), `wp-content/plugins/` (custom plugins) |
|
|
85
|
+
| **Already handled by graphify** | `node_modules/` |
|
|
86
|
+
|
|
87
|
+
## Noise Directories Handled by graphify (not duplicated)
|
|
88
|
+
|
|
89
|
+
The following directories are already excluded by graphify's built-in `_SKIP_DIRS` list. The framework-aware skill does NOT duplicate these patterns:
|
|
90
|
+
|
|
91
|
+
`.angular/`, `.cache/`, `.dart_tool/`, `.graphify/`, `.idea/`, `.next/`, `.nuxt/`, `.parcel-cache/`, `.pytest_cache/`, `.ruff_cache/`, `.serverless/`, `.svelte-kit/`, `.terraform/`, `.tox/`, `.turbo/`, `.venv/`, `__.pycache__/`, `build/`, `coverage/`, `dist/`, `dist-protected/`, `env/`, `graphify-out/`, `lib64/`, `node_modules/`, `out/`, `site-packages/`, `snapshots/`, `storybook-static/`, `target/`, `venv/`, `visual-tests/`
|
|
92
|
+
|
|
93
|
+
## Noise Files Handled by graphify (not duplicated)
|
|
94
|
+
|
|
95
|
+
`package-lock.json`, `yarn.lock`, `pnpm-lock.yaml`, `Cargo.lock`, `poetry.lock`, `Gemfile.lock`, `composer.lock`, `go.sum`, `go.work.sum`
|