@nockdev/awf 6.2.4 → 6.2.5
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/.agent/config.yaml +2 -2
- package/.agent/core/AGENT_BEHAVIOR.md +1 -1
- package/.agent/core/AUDIT_POLICY.md +1 -1
- package/.agent/core/CACHE.md +1 -1
- package/.agent/core/DATA_SAFETY.md +1 -1
- package/.agent/core/MEMORY_PATHS.yaml +2 -2
- package/.agent/core/PERMISSIONS.md +1 -1
- package/.agent/core/README.md +1 -1
- package/.agent/core/VERSION.yaml +4 -4
- package/.agent/core/archive/ACTIVE_MEMORY.yaml +2 -2
- package/.agent/core/archive/CHECKPOINT.yaml +2 -2
- package/.agent/core/archive/CLEANUP_ENGINE.yaml +2 -2
- package/.agent/core/archive/CONTEXT_INJECTOR.yaml +2 -2
- package/.agent/core/archive/CONTEXT_LOADER.yaml +1 -1
- package/.agent/core/archive/CONTEXT_OPTIMIZATION.yaml +1 -1
- package/.agent/core/archive/CONTEXT_PRIORITY.yaml +2 -2
- package/.agent/core/archive/FLOW_ENGINE.yaml +1 -1
- package/.agent/core/archive/GRAPH_MEMORY.yaml +1 -1
- package/.agent/core/archive/HYBRID_ROUTER.yaml +1 -1
- package/.agent/core/archive/INTENT_DETECTION.yaml +1 -1
- package/.agent/core/archive/MEMORY_CONSOLIDATION.yaml +3 -3
- package/.agent/core/archive/MEMORY_ENGINE.yaml +2 -2
- package/.agent/core/archive/MEMORY_UTILS.yaml +1 -1
- package/.agent/core/archive/REFLECTION_ENGINE.yaml +1 -1
- package/.agent/core/archive/ROUTER.yaml +4 -4
- package/.agent/core/archive/SCORING_FORMULA.yaml +2 -2
- package/.agent/core/archive/SEMANTIC_ENGINE.yaml +1 -1
- package/.agent/core/archive/SKILLS_FLOW.yaml +1 -1
- package/.agent/core/archive/STATE_MACHINE.yaml +1 -1
- package/.agent/core/archive/SUMMARIZATION_ENGINE.yaml +2 -2
- package/.agent/core/archive/TOKEN_BUDGETS.yaml +2 -2
- package/.agent/core/archive/TOKEN_LOADING.yaml +2 -2
- package/.agent/core/archive/TOKEN_SUMMARY.yaml +2 -2
- package/.agent/core/reference/CODING_STYLES.yaml +1 -1
- package/.agent/core/reference/LIBRARY_REGISTRY.yaml +1 -1
- package/.agent/core/reference/MCP_TOOLS.yaml +2 -2
- package/.agent/core/reference/PATTERNS.yaml +1 -1
- package/.agent/core/reference/SKILL_SCHEMA.yaml +1 -1
- package/.agent/i18n/en.yaml +6 -6
- package/.agent/i18n/vi.yaml +6 -6
- package/.agent/ide/README.md +1 -1
- package/.agent/ide/amazonq.json +1 -1
- package/.agent/ide/amp.json +1 -1
- package/.agent/ide/antigravity.json +1 -1
- package/.agent/ide/augment.json +1 -1
- package/.agent/ide/claude.json +1 -1
- package/.agent/ide/cline.json +1 -1
- package/.agent/ide/cody.json +1 -1
- package/.agent/ide/continue.json +1 -1
- package/.agent/ide/cursor.json +1 -1
- package/.agent/ide/gemini.json +1 -1
- package/.agent/ide/jetbrains.json +1 -1
- package/.agent/ide/kiro.json +1 -1
- package/.agent/ide/opencode.json +1 -1
- package/.agent/ide/roo.json +1 -1
- package/.agent/ide/tabnine.json +1 -1
- package/.agent/ide/trae.json +1 -1
- package/.agent/ide/vscode.json +1 -1
- package/.agent/ide/windsurf.json +2 -3
- package/.agent/ide/zed.json +1 -1
- package/.agent/manifest.yaml +1 -1
- package/.agent/personas/README.md +1 -1
- package/.agent/personas/architect.md +1 -1
- package/.agent/personas/auditor.md +1 -1
- package/.agent/personas/debugger.md +1 -1
- package/.agent/personas/developer.md +1 -1
- package/.agent/personas/devops.md +1 -1
- package/.agent/personas/documenter.md +1 -1
- package/.agent/personas/orchestrator.md +1 -1
- package/.agent/personas/persona.schema.yaml +1 -1
- package/.agent/personas/planner.md +1 -1
- package/.agent/personas/researcher.md +1 -1
- package/.agent/personas/security.md +1 -1
- package/.agent/personas/tester.md +1 -1
- package/.agent/rules/README.md +1 -1
- package/.agent/rules/archive/constitutional/tier-0-core.yaml +5 -5
- package/.agent/rules/archive/constitutional/tier-1-safety.yaml +5 -5
- package/.agent/rules/archive/constitutional/tier-2-execution.yaml +6 -6
- package/.agent/rules/archive/context-management.yaml +1 -1
- package/.agent/rules/archive/duplication-prevention.md +1 -1
- package/.agent/rules/archive/evidence.yaml +1 -1
- package/.agent/rules/archive/project-detection.md +1 -1
- package/.agent/rules/archive/reflection.yaml +1 -1
- package/.agent/rules/archive/versioning.yaml +5 -5
- package/.agent/rules/data/build-systems.yaml +2 -2
- package/.agent/rules/modules/agent-delegation.yaml +2 -2
- package/.agent/rules/modules/edit-verification.yaml +1 -1
- package/.agent/rules/modules/git-workflow.yaml +1 -1
- package/.agent/rules/modules/language.yaml +1 -1
- package/.agent/rules/modules/online-research.yaml +1 -1
- package/.agent/rules/modules/performance-optimization.yaml +2 -2
- package/.agent/rules/modules/quality.yaml +1 -1
- package/.agent/rules/modules/stop-conditions.yaml +1 -1
- package/.agent/rules/modules/terminal-safety.yaml +1 -1
- package/.agent/rules/modules/yagni.yaml +1 -1
- package/.agent/rules/validation-framework.md +1 -1
- package/.agent/skills/README.md +1 -1
- package/.agent/skills/_categories.yaml +2 -2
- package/.agent/skills/core/api-design/META.yaml +1 -1
- package/.agent/skills/core/authentication/META.yaml +1 -1
- package/.agent/skills/core/error-handling/META.yaml +1 -1
- package/.agent/skills/core/logging/META.yaml +1 -1
- package/.agent/skills/core/observability/META.yaml +1 -1
- package/.agent/skills/core/security/META.yaml +1 -1
- package/.agent/skills/core/security/SKILL.md +1 -1
- package/.agent/skills/cross-cutting/accessibility/META.yaml +1 -1
- package/.agent/skills/cross-cutting/audit-pro/META.yaml +1 -1
- package/.agent/skills/cross-cutting/bun/META.yaml +1 -1
- package/.agent/skills/cross-cutting/bun/SKILL.md +1 -1
- package/.agent/skills/cross-cutting/coding-rules/META.yaml +1 -1
- package/.agent/skills/cross-cutting/database/META.yaml +1 -1
- package/.agent/skills/cross-cutting/database/SKILL.md +1 -1
- package/.agent/skills/cross-cutting/deno/META.yaml +1 -1
- package/.agent/skills/cross-cutting/deno/SKILL.md +1 -1
- package/.agent/skills/cross-cutting/domyh-design/META.yaml +1 -1
- package/.agent/skills/cross-cutting/domyh-design/data/desktop-colors.yaml +1 -1
- package/.agent/skills/cross-cutting/seo/META.yaml +1 -1
- package/.agent/skills/cross-cutting/sql/META.yaml +1 -1
- package/.agent/skills/cross-cutting/sql/SKILL.md +1 -1
- package/.agent/skills/cross-cutting/tailwind/META.yaml +1 -1
- package/.agent/skills/cross-cutting/tailwind/SKILL.md +1 -1
- package/.agent/skills/cross-cutting/tdd-workflow/META.yaml +1 -1
- package/.agent/skills/cross-cutting/testing/META.yaml +1 -1
- package/.agent/skills/cross-cutting/testing/SKILL.md +1 -1
- package/.agent/skills/cross-cutting/testing/data/frameworks.yaml +1 -1
- package/.agent/skills/cross-cutting/web-perf/META.yaml +1 -1
- package/.agent/skills/cross-cutting/web-perf/SKILL.md +1 -1
- package/.agent/skills/devops/aws/META.yaml +1 -1
- package/.agent/skills/devops/ci-cd/META.yaml +1 -1
- package/.agent/skills/devops/docker/META.yaml +1 -1
- package/.agent/skills/devops/kubernetes/META.yaml +1 -1
- package/.agent/skills/frameworks/angular/META.yaml +1 -1
- package/.agent/skills/frameworks/angular/SKILL.md +1 -1
- package/.agent/skills/frameworks/flutter/META.yaml +1 -1
- package/.agent/skills/frameworks/flutter/SKILL.md +1 -1
- package/.agent/skills/frameworks/nextjs/META.yaml +1 -1
- package/.agent/skills/frameworks/nextjs/SKILL.md +1 -1
- package/.agent/skills/frameworks/nuxt/META.yaml +1 -1
- package/.agent/skills/frameworks/nuxt/SKILL.md +1 -1
- package/.agent/skills/frameworks/react/META.yaml +1 -1
- package/.agent/skills/frameworks/react/SKILL.md +1 -1
- package/.agent/skills/frameworks/react-native/META.yaml +1 -1
- package/.agent/skills/frameworks/react-native/SKILL.md +1 -1
- package/.agent/skills/frameworks/svelte/META.yaml +1 -1
- package/.agent/skills/frameworks/svelte/SKILL.md +1 -1
- package/.agent/skills/frameworks/vue/META.yaml +1 -1
- package/.agent/skills/frameworks/vue/SKILL.md +1 -1
- package/.agent/skills/index.json +438 -100
- package/.agent/skills/languages/asm/META.yaml +1 -1
- package/.agent/skills/languages/asm/SKILL.md +1 -1
- package/.agent/skills/languages/c/META.yaml +1 -1
- package/.agent/skills/languages/c/SKILL.md +1 -1
- package/.agent/skills/languages/clojure/META.yaml +1 -1
- package/.agent/skills/languages/clojure/SKILL.md +1 -1
- package/.agent/skills/languages/cpp/META.yaml +1 -1
- package/.agent/skills/languages/cpp/SKILL.md +1 -1
- package/.agent/skills/languages/crystal/META.yaml +1 -1
- package/.agent/skills/languages/crystal/SKILL.md +1 -1
- package/.agent/skills/languages/csharp/META.yaml +1 -1
- package/.agent/skills/languages/csharp/SKILL.md +1 -1
- package/.agent/skills/languages/elixir/META.yaml +1 -1
- package/.agent/skills/languages/elixir/SKILL.md +1 -1
- package/.agent/skills/languages/fsharp/META.yaml +1 -1
- package/.agent/skills/languages/fsharp/SKILL.md +1 -1
- package/.agent/skills/languages/go/META.yaml +1 -1
- package/.agent/skills/languages/go/SKILL.md +1 -1
- package/.agent/skills/languages/haskell/META.yaml +1 -1
- package/.agent/skills/languages/haskell/SKILL.md +1 -1
- package/.agent/skills/languages/java/META.yaml +1 -1
- package/.agent/skills/languages/java/SKILL.md +1 -1
- package/.agent/skills/languages/javascript/META.yaml +1 -1
- package/.agent/skills/languages/javascript/SKILL.md +1 -1
- package/.agent/skills/languages/julia/META.yaml +1 -1
- package/.agent/skills/languages/julia/SKILL.md +1 -1
- package/.agent/skills/languages/kotlin/META.yaml +1 -1
- package/.agent/skills/languages/kotlin/SKILL.md +1 -1
- package/.agent/skills/languages/lua/META.yaml +1 -1
- package/.agent/skills/languages/lua/SKILL.md +3 -3
- package/.agent/skills/languages/nim/META.yaml +1 -1
- package/.agent/skills/languages/nim/SKILL.md +1 -1
- package/.agent/skills/languages/ocaml/META.yaml +1 -1
- package/.agent/skills/languages/ocaml/SKILL.md +1 -1
- package/.agent/skills/languages/perl/META.yaml +1 -1
- package/.agent/skills/languages/perl/SKILL.md +1 -1
- package/.agent/skills/languages/php/META.yaml +1 -1
- package/.agent/skills/languages/php/SKILL.md +1 -1
- package/.agent/skills/languages/python/META.yaml +1 -1
- package/.agent/skills/languages/python/SKILL.md +1 -1
- package/.agent/skills/languages/r/META.yaml +1 -1
- package/.agent/skills/languages/r/SKILL.md +1 -1
- package/.agent/skills/languages/ruby/META.yaml +1 -1
- package/.agent/skills/languages/ruby/SKILL.md +1 -1
- package/.agent/skills/languages/rust/META.yaml +1 -1
- package/.agent/skills/languages/rust/SKILL.md +1 -1
- package/.agent/skills/languages/scala/META.yaml +1 -1
- package/.agent/skills/languages/scala/SKILL.md +1 -1
- package/.agent/skills/languages/solidity/META.yaml +1 -1
- package/.agent/skills/languages/solidity/SKILL.md +1 -1
- package/.agent/skills/languages/swift/META.yaml +1 -1
- package/.agent/skills/languages/swift/SKILL.md +1 -1
- package/.agent/skills/languages/typescript/META.yaml +1 -1
- package/.agent/skills/languages/typescript/SKILL.md +1 -1
- package/.agent/skills/languages/zig/META.yaml +1 -1
- package/.agent/skills/languages/zig/SKILL.md +1 -1
- package/.agent/templates/README.md +2 -2
- package/.agent/templates/debug-report.md +1 -1
- package/.agent/templates/deploy-plan.md +1 -1
- package/.agent/templates/doc-template.md +1 -1
- package/.agent/templates/index.yaml +1 -1
- package/.agent/templates/migrate-plan.md +1 -1
- package/.agent/templates/phase-template.md +1 -1
- package/.agent/templates/tasks/audit.yaml +1 -1
- package/.agent/templates/tasks/bug_fix.yaml +1 -1
- package/.agent/templates/tasks/code_implementation.yaml +1 -1
- package/.agent/templates/tasks/refactor.yaml +1 -1
- package/.agent/templates/test-report.md +1 -1
- package/.agent/workflows/ap.md +4 -4
- package/.agent/workflows/code.md +1 -1
- package/.agent/workflows/plan.md +3 -3
- package/.agent/workflows/recap.md +1 -1
- package/dist/constants/ide-install-specs.js +1 -1
- package/dist/constants.d.ts +1 -1
- package/dist/constants.js +1 -1
- package/package.json +1 -1
- package/.agent/memory/active_memories.json +0 -35
- package/.agent/memory/archive/.gitkeep +0 -0
- package/.agent/memory/audit_summary.json +0 -58
- package/.agent/memory/cleanup_log.json +0 -34
- package/.agent/memory/consolidated.md +0 -75
- package/.agent/memory/core_memory/persona.json +0 -30
- package/.agent/memory/core_memory/project.json +0 -25
- package/.agent/memory/core_memory/rules.json +0 -29
- package/.agent/memory/core_memory/user.json +0 -24
- package/.agent/memory/decisions.md +0 -40
- package/.agent/memory/graph/knowledge_graph.json +0 -12
- package/.agent/memory/insights.md +0 -52
- package/.agent/memory/metrics.json +0 -48
- package/.agent/memory/patterns/errors.json +0 -11
- package/.agent/memory/patterns/successes.json +0 -10
- package/.agent/memory/session.md +0 -64
- package/.agent/memory/session_rules.json +0 -19
- package/.agent/memory/state.json +0 -81
- package/.agent/memory/vectors/README.md +0 -129
- package/.agent/private/README.md +0 -74
- package/.agent/private/_index.yaml +0 -23
- package/.agent/private/_template/META.yaml +0 -38
- package/.agent/private/_template/SKILL.md +0 -43
- package/.agent/private/_template/data/.gitkeep +0 -0
- package/.agent/private/autodomyh-api/META.yaml +0 -48
- package/.agent/private/autodomyh-api/SKILL.md +0 -141
- package/.agent/private/autodomyh-api/data/conventions.yaml +0 -107
package/.agent/memory/state.json
DELETED
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": "1.0.0",
|
|
3
|
-
"last_updated": "2026-02-03T00:50:00+07:00",
|
|
4
|
-
|
|
5
|
-
"system": {
|
|
6
|
-
"name": "DOMYH Awesome Code",
|
|
7
|
-
"version": v6.2.4,
|
|
8
|
-
"version_short": v6.2.4,
|
|
9
|
-
"_note": "Sync from core/VERSION.yaml"
|
|
10
|
-
},
|
|
11
|
-
|
|
12
|
-
"project": {
|
|
13
|
-
"name": "DOMYH Awesome Code",
|
|
14
|
-
"path": ".",
|
|
15
|
-
"type": "ai-agent-library",
|
|
16
|
-
"stack": ["yaml", "markdown", "python", "json"],
|
|
17
|
-
"initialized_at": "2026-02-01T11:17:00+07:00"
|
|
18
|
-
},
|
|
19
|
-
|
|
20
|
-
"skills": {
|
|
21
|
-
"frequently_used": [],
|
|
22
|
-
"last_active": [],
|
|
23
|
-
"preferences": {}
|
|
24
|
-
},
|
|
25
|
-
|
|
26
|
-
"workflows": {
|
|
27
|
-
"last_executed": "/ap",
|
|
28
|
-
"execution_count": {
|
|
29
|
-
"ap": 1
|
|
30
|
-
},
|
|
31
|
-
"favorites": []
|
|
32
|
-
},
|
|
33
|
-
|
|
34
|
-
"audit": {
|
|
35
|
-
"last_score": 9.2,
|
|
36
|
-
"last_date": "2026-02-04",
|
|
37
|
-
"_note": "Full history in audit_summary.json"
|
|
38
|
-
},
|
|
39
|
-
|
|
40
|
-
"context": {
|
|
41
|
-
"current_branch": null,
|
|
42
|
-
"current_phase": "audit_complete",
|
|
43
|
-
"pending_tasks": [],
|
|
44
|
-
"blockers": []
|
|
45
|
-
},
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
"preferences": {
|
|
49
|
-
"language": "vi",
|
|
50
|
-
"verbosity": "normal",
|
|
51
|
-
"auto_fix": false,
|
|
52
|
-
"confirm_destructive": true,
|
|
53
|
-
"auto_test": {
|
|
54
|
-
"mvp": false,
|
|
55
|
-
"production": true,
|
|
56
|
-
"enterprise": true
|
|
57
|
-
}
|
|
58
|
-
},
|
|
59
|
-
|
|
60
|
-
"phase_progress": {
|
|
61
|
-
"active_plan": null,
|
|
62
|
-
"current_phase": null,
|
|
63
|
-
"total_phases": 0,
|
|
64
|
-
"completed_phases": 0,
|
|
65
|
-
"tasks": {
|
|
66
|
-
"total": 0,
|
|
67
|
-
"completed": 0
|
|
68
|
-
}
|
|
69
|
-
},
|
|
70
|
-
|
|
71
|
-
"flags": {
|
|
72
|
-
"has_unfinished_work": true,
|
|
73
|
-
"needs_review": false,
|
|
74
|
-
"has_critical_issues": false
|
|
75
|
-
},
|
|
76
|
-
|
|
77
|
-
"memory": {
|
|
78
|
-
"last_sync": "2026-02-01T11:25:00+07:00",
|
|
79
|
-
"metrics_ref": "metrics.json"
|
|
80
|
-
}
|
|
81
|
-
}
|
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
# 🔍 DOMYH Awesome Code — Semantic Memory
|
|
2
|
-
|
|
3
|
-
> Vector-based semantic search using LanceDB
|
|
4
|
-
> **Status**: Optional (Disabled by default)
|
|
5
|
-
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## Overview
|
|
9
|
-
|
|
10
|
-
This directory contains the LanceDB vector database for semantic memory.
|
|
11
|
-
When enabled, it provides:
|
|
12
|
-
|
|
13
|
-
- **Semantic search** across audit history
|
|
14
|
-
- **Similar decision** lookup
|
|
15
|
-
- **Error pattern** matching
|
|
16
|
-
- **Code review** insights
|
|
17
|
-
|
|
18
|
-
---
|
|
19
|
-
|
|
20
|
-
## Enabling Semantic Memory
|
|
21
|
-
|
|
22
|
-
### Option 1: Edit Configuration
|
|
23
|
-
|
|
24
|
-
Edit `.agent/core/SEMANTIC_ENGINE.yaml`:
|
|
25
|
-
|
|
26
|
-
```yaml
|
|
27
|
-
config:
|
|
28
|
-
enabled: true # Change from false
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
### Option 2: Use Command (Future)
|
|
32
|
-
|
|
33
|
-
```
|
|
34
|
-
/mem enable-semantic
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
---
|
|
38
|
-
|
|
39
|
-
## Requirements
|
|
40
|
-
|
|
41
|
-
### LanceDB (Embedded)
|
|
42
|
-
|
|
43
|
-
```bash
|
|
44
|
-
# Python
|
|
45
|
-
pip install lancedb
|
|
46
|
-
|
|
47
|
-
# Node.js
|
|
48
|
-
npm install @lancedb/lancedb
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
### Embeddings (Choose one)
|
|
52
|
-
|
|
53
|
-
**OpenAI (Recommended)**:
|
|
54
|
-
|
|
55
|
-
```bash
|
|
56
|
-
export OPENAI_API_KEY=your_key
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
**Local Fallback (No API needed)**:
|
|
60
|
-
|
|
61
|
-
```bash
|
|
62
|
-
pip install sentence-transformers
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
---
|
|
66
|
-
|
|
67
|
-
## Collections
|
|
68
|
-
|
|
69
|
-
| Collection | Content | Index Trigger |
|
|
70
|
-
| ---------------- | ----------------------- | ------------------ |
|
|
71
|
-
| `audits` | Full audit reports | `/ap` complete |
|
|
72
|
-
| `decisions` | Architectural decisions | Decision made |
|
|
73
|
-
| `code_reviews` | Review findings | `/review` complete |
|
|
74
|
-
| `error_patterns` | Error solutions | Error resolved |
|
|
75
|
-
|
|
76
|
-
---
|
|
77
|
-
|
|
78
|
-
## Search Commands
|
|
79
|
-
|
|
80
|
-
| Command | Description | Example |
|
|
81
|
-
| --------------- | --------------------- | -------------------------- |
|
|
82
|
-
| `/search` | Semantic search all | `/search authentication` |
|
|
83
|
-
| `/find-similar` | Find similar content | `/find-similar this error` |
|
|
84
|
-
| `/recall` | Recall past decisions | `/recall database choice` |
|
|
85
|
-
|
|
86
|
-
---
|
|
87
|
-
|
|
88
|
-
## Token Budget
|
|
89
|
-
|
|
90
|
-
| Setting | Value |
|
|
91
|
-
| ----------------- | --------- |
|
|
92
|
-
| Max results | 5 |
|
|
93
|
-
| Tokens per result | 500 |
|
|
94
|
-
| **Total budget** | **2,500** |
|
|
95
|
-
|
|
96
|
-
---
|
|
97
|
-
|
|
98
|
-
## Directory Structure
|
|
99
|
-
|
|
100
|
-
```
|
|
101
|
-
vectors/
|
|
102
|
-
├── README.md # This file
|
|
103
|
-
├── domyh_memory.lance/ # LanceDB database (when created)
|
|
104
|
-
└── .gitignore # Ignore database files
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
---
|
|
108
|
-
|
|
109
|
-
## Data Retention
|
|
110
|
-
|
|
111
|
-
| Collection | Max Age | Minimum Keep |
|
|
112
|
-
| ---------- | -------- | ------------ |
|
|
113
|
-
| Audits | 1 year | 10 entries |
|
|
114
|
-
| Decisions | 2 years | 50 entries |
|
|
115
|
-
| Errors | 6 months | 20 entries |
|
|
116
|
-
|
|
117
|
-
---
|
|
118
|
-
|
|
119
|
-
## Fallback Behavior
|
|
120
|
-
|
|
121
|
-
When semantic search is disabled or unavailable:
|
|
122
|
-
|
|
123
|
-
- Falls back to **keyword search**
|
|
124
|
-
- Uses **file-based memory** (session.md, decisions.md)
|
|
125
|
-
- No warning shown to user
|
|
126
|
-
|
|
127
|
-
---
|
|
128
|
-
|
|
129
|
-
_DOMYH Awesome Code • Semantic Memory (Optional)_
|
package/.agent/private/README.md
DELETED
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
# 🔒 Private Skills
|
|
2
|
-
|
|
3
|
-
> Skills riêng cho dự án / công ty — **KHÔNG** commit vào repo public.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Tạo Private Skill Mới
|
|
8
|
-
|
|
9
|
-
### Bước 1: Copy template
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
# PowerShell
|
|
13
|
-
Copy-Item -Recurse .agent/private/_template .agent/private/my-skill-name
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
### Bước 2: Edit files
|
|
17
|
-
|
|
18
|
-
| File | Sửa gì |
|
|
19
|
-
| ------------- | ----------------------------------------- |
|
|
20
|
-
| `META.yaml` | Đổi `name`, `display`, `desc`, `triggers` |
|
|
21
|
-
| `SKILL.md` | Viết patterns, checklists, examples |
|
|
22
|
-
| `data/*.yaml` | Thêm data files nếu cần |
|
|
23
|
-
|
|
24
|
-
### Bước 3: Register
|
|
25
|
-
|
|
26
|
-
Thêm vào `_index.yaml`:
|
|
27
|
-
|
|
28
|
-
```yaml
|
|
29
|
-
skills:
|
|
30
|
-
- { id: my-skill-name, has_advanced: false }
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
### Bước 4: Done!
|
|
34
|
-
|
|
35
|
-
Router sẽ tự phát hiện skill mới. Test bằng cách dùng keyword đã định nghĩa.
|
|
36
|
-
|
|
37
|
-
---
|
|
38
|
-
|
|
39
|
-
## Override Public Skills
|
|
40
|
-
|
|
41
|
-
Private skill có `priority: -1` (cao nhất). Nếu tạo private skill **cùng ID** với public skill, private sẽ được ưu tiên.
|
|
42
|
-
|
|
43
|
-
Ví dụ: Tạo `private/testing/META.yaml` → override `skills/cross-cutting/testing/META.yaml`
|
|
44
|
-
|
|
45
|
-
---
|
|
46
|
-
|
|
47
|
-
## Cấu trúc
|
|
48
|
-
|
|
49
|
-
```
|
|
50
|
-
private/
|
|
51
|
-
├── _index.yaml ← Registry (bắt buộc)
|
|
52
|
-
├── _template/ ← Template (copy để tạo mới)
|
|
53
|
-
│ ├── META.yaml
|
|
54
|
-
│ ├── SKILL.md
|
|
55
|
-
│ └── data/
|
|
56
|
-
├── autodomyh-api/ ← Skill mẫu
|
|
57
|
-
│ ├── META.yaml
|
|
58
|
-
│ ├── SKILL.md
|
|
59
|
-
│ └── data/
|
|
60
|
-
│ └── conventions.yaml
|
|
61
|
-
└── README.md ← File này
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
---
|
|
65
|
-
|
|
66
|
-
## Lưu ý
|
|
67
|
-
|
|
68
|
-
- ⚠️ Directory này đã được `.gitignore` — KHÔNG bị commit
|
|
69
|
-
- 📋 Nếu cần sync giữa các máy, copy thủ công hoặc dùng private git repo
|
|
70
|
-
- 🔑 KHÔNG lưu credentials/secrets trong skill files
|
|
71
|
-
|
|
72
|
-
---
|
|
73
|
-
|
|
74
|
-
_DOMYH Awesome Code • Private Skills_
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
# =============================================================================
|
|
2
|
-
# Private Skills Registry
|
|
3
|
-
# =============================================================================
|
|
4
|
-
# Skills listed here are gitignored and NOT shared publicly.
|
|
5
|
-
# They follow the same 3-tier structure: META.yaml → SKILL.md → ADVANCED.md
|
|
6
|
-
#
|
|
7
|
-
# HOW TO ADD:
|
|
8
|
-
# 1. Copy _template/ → your-skill-name/
|
|
9
|
-
# 2. Edit META.yaml and SKILL.md
|
|
10
|
-
# 3. Add entry to this file under 'skills:'
|
|
11
|
-
# 4. Done! The router will auto-discover it.
|
|
12
|
-
# =============================================================================
|
|
13
|
-
|
|
14
|
-
category: private
|
|
15
|
-
description: "Private/company-specific skills (gitignored)"
|
|
16
|
-
priority: -1 # Highest priority — overrides public skills with same ID
|
|
17
|
-
|
|
18
|
-
count: 1
|
|
19
|
-
skills:
|
|
20
|
-
- { id: autodomyh-api, has_advanced: false }
|
|
21
|
-
# Add your private skills below:
|
|
22
|
-
# - { id: my-company-api, has_advanced: false }
|
|
23
|
-
# - { id: internal-patterns, has_advanced: true }
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
# =============================================================================
|
|
2
|
-
# META.yaml — Private Skill Template
|
|
3
|
-
# =============================================================================
|
|
4
|
-
# Copy this directory and rename to create a new private skill.
|
|
5
|
-
# Replace all {PLACEHOLDERS} with actual values.
|
|
6
|
-
# =============================================================================
|
|
7
|
-
|
|
8
|
-
name: "{skill-id}" # lowercase, hyphen-separated
|
|
9
|
-
version: "1.0.0"
|
|
10
|
-
display: "{Skill Display Name}"
|
|
11
|
-
category: private # Always 'private' for private skills
|
|
12
|
-
tier: 1
|
|
13
|
-
priority: -1 # -1 = highest (overrides public skills)
|
|
14
|
-
|
|
15
|
-
desc: "{Short description of what this skill provides — max 80 chars}"
|
|
16
|
-
|
|
17
|
-
triggers:
|
|
18
|
-
file_patterns:
|
|
19
|
-
# - "*.ext" # File patterns that activate this skill
|
|
20
|
-
# - "specific-config.yaml"
|
|
21
|
-
keywords:
|
|
22
|
-
# - "keyword1" # Keywords that trigger skill loading
|
|
23
|
-
# - "keyword2"
|
|
24
|
-
|
|
25
|
-
caps:
|
|
26
|
-
# - "Capability 1" # What this skill can do
|
|
27
|
-
# - "Capability 2"
|
|
28
|
-
|
|
29
|
-
# Data files (if any)
|
|
30
|
-
data_files: []
|
|
31
|
-
# - data/patterns.yaml
|
|
32
|
-
# - data/conventions.yaml
|
|
33
|
-
|
|
34
|
-
related_skills: []
|
|
35
|
-
# - testing
|
|
36
|
-
# - security
|
|
37
|
-
|
|
38
|
-
# _DOMYH Awesome Code • Private Skill Template_
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: "{skill-id}"
|
|
3
|
-
detect: []
|
|
4
|
-
version: "1.0.0"
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# {Skill Display Name}
|
|
8
|
-
|
|
9
|
-
> {One-line description of what this skill provides}
|
|
10
|
-
|
|
11
|
-
## 📦 Data Files
|
|
12
|
-
|
|
13
|
-
| File | Content | Records |
|
|
14
|
-
| ---- | ------- | ------- |
|
|
15
|
-
| — | — | — |
|
|
16
|
-
|
|
17
|
-
## 🎯 Core Problem
|
|
18
|
-
|
|
19
|
-
```
|
|
20
|
-
❌ Without this skill: {What goes wrong}
|
|
21
|
-
✅ With this skill: {What the agent does differently}
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
## 📋 Quick Reference
|
|
25
|
-
|
|
26
|
-
| Topic | Pattern |
|
|
27
|
-
| ----- | ------- |
|
|
28
|
-
| — | — |
|
|
29
|
-
|
|
30
|
-
## ⚠️ Anti-Patterns
|
|
31
|
-
|
|
32
|
-
| ❌ Don't | ✅ Do |
|
|
33
|
-
| -------- | ----- |
|
|
34
|
-
| — | — |
|
|
35
|
-
|
|
36
|
-
## 📋 Checklist
|
|
37
|
-
|
|
38
|
-
- [ ] Item 1
|
|
39
|
-
- [ ] Item 2
|
|
40
|
-
|
|
41
|
-
---
|
|
42
|
-
|
|
43
|
-
_DOMYH Awesome Code — Private Skill Template_
|
|
File without changes
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
# =============================================================================
|
|
2
|
-
# META.yaml — AutoDomyh API Conventions (Private)
|
|
3
|
-
# =============================================================================
|
|
4
|
-
|
|
5
|
-
name: autodomyh-api
|
|
6
|
-
version: "1.0.0"
|
|
7
|
-
display: AutoDomyh API Conventions
|
|
8
|
-
category: private
|
|
9
|
-
tier: 1
|
|
10
|
-
priority: -1
|
|
11
|
-
|
|
12
|
-
desc: "Internal API conventions, domain patterns, and project-specific coding standards for AutoDomyh backend (Go) and frontend (Nuxt)."
|
|
13
|
-
|
|
14
|
-
triggers:
|
|
15
|
-
file_patterns:
|
|
16
|
-
- "cmd/server/*.go"
|
|
17
|
-
- "internal/**/*.go"
|
|
18
|
-
- "app/**/*.vue"
|
|
19
|
-
- "pages/**/*.vue"
|
|
20
|
-
- "composables/**/*.ts"
|
|
21
|
-
keywords:
|
|
22
|
-
- autodomyh
|
|
23
|
-
- auto_domyh
|
|
24
|
-
- domyh api
|
|
25
|
-
- domyh conventions
|
|
26
|
-
- internal api
|
|
27
|
-
- nockdev
|
|
28
|
-
- backend convention
|
|
29
|
-
- frontend convention
|
|
30
|
-
|
|
31
|
-
caps:
|
|
32
|
-
- Go backend modular monolith patterns (atomic delegation, router mounting)
|
|
33
|
-
- Nuxt frontend component conventions (UModal, UDropdownMenu, composables)
|
|
34
|
-
- Domain-specific naming conventions (packages, licenses, points, game servers)
|
|
35
|
-
- API error handling patterns (unified error response)
|
|
36
|
-
- Database patterns (GORM repository, cache-aside)
|
|
37
|
-
|
|
38
|
-
data_files:
|
|
39
|
-
- data/conventions.yaml
|
|
40
|
-
|
|
41
|
-
related_skills:
|
|
42
|
-
- go
|
|
43
|
-
- nuxt
|
|
44
|
-
- typescript
|
|
45
|
-
- database
|
|
46
|
-
- security
|
|
47
|
-
|
|
48
|
-
# _DOMYH Awesome Code • AutoDomyh API Private Skill_
|
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: autodomyh-api
|
|
3
|
-
detect: ["cmd/server/*.go", "internal/**/*.go"]
|
|
4
|
-
version: "1.0.0"
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# AutoDomyh API Conventions
|
|
8
|
-
|
|
9
|
-
> Internal project conventions — NOT for public sharing. Check `data/conventions.yaml` for lookup tables.
|
|
10
|
-
|
|
11
|
-
## 📦 Data Files
|
|
12
|
-
|
|
13
|
-
| File | Content | Records |
|
|
14
|
-
| ------------------ | ---------------------------------- | ------- |
|
|
15
|
-
| `conventions.yaml` | Naming, structure, domain patterns | 25+ |
|
|
16
|
-
|
|
17
|
-
## 🏗️ Architecture Overview
|
|
18
|
-
|
|
19
|
-
```
|
|
20
|
-
Backend (Go):
|
|
21
|
-
Architecture: Modular Monolith + Atomic Delegation
|
|
22
|
-
ORM: GORM with Repository pattern
|
|
23
|
-
Cache: Redis Cache-Aside (PERF-001)
|
|
24
|
-
Auth: JWT + RBAC
|
|
25
|
-
Router: Chi → modular mount per domain
|
|
26
|
-
|
|
27
|
-
Frontend (Nuxt 4):
|
|
28
|
-
UI: Nuxt UI v4 (UModal, UDropdownMenu, UButton, etc.)
|
|
29
|
-
State: Pinia + composables
|
|
30
|
-
Auth: useSanctumAuth() composable
|
|
31
|
-
API: useFetch() / $fetch() with baseURL
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
## 📋 Backend Conventions
|
|
35
|
-
|
|
36
|
-
### Handler Pattern (Atomic Delegation)
|
|
37
|
-
|
|
38
|
-
```go
|
|
39
|
-
// ✅ Correct: Handler → Service → Repository
|
|
40
|
-
func (h *Handler) CreatePackage(w http.ResponseWriter, r *http.Request) {
|
|
41
|
-
var req CreatePackageRequest
|
|
42
|
-
if err := json.NewDecoder(r.Body).Decode(&req); err != nil {
|
|
43
|
-
respondError(w, http.StatusBadRequest, "invalid request")
|
|
44
|
-
return
|
|
45
|
-
}
|
|
46
|
-
pkg, err := h.service.Create(r.Context(), req)
|
|
47
|
-
if err != nil {
|
|
48
|
-
respondError(w, http.StatusInternalServerError, err.Error())
|
|
49
|
-
return
|
|
50
|
-
}
|
|
51
|
-
respondJSON(w, http.StatusCreated, pkg)
|
|
52
|
-
}
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
### Router Mounting
|
|
56
|
-
|
|
57
|
-
```go
|
|
58
|
-
// ✅ Each domain mounts at /api/v1/{domain}
|
|
59
|
-
func (m *Module) Mount(r chi.Router) {
|
|
60
|
-
r.Route("/api/v1/packages", func(r chi.Router) {
|
|
61
|
-
r.Use(middleware.Auth)
|
|
62
|
-
r.Get("/", h.List)
|
|
63
|
-
r.Post("/", h.Create)
|
|
64
|
-
r.Get("/{id}", h.Get)
|
|
65
|
-
})
|
|
66
|
-
}
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
### Error Response Format
|
|
70
|
-
|
|
71
|
-
```json
|
|
72
|
-
{
|
|
73
|
-
"error": true,
|
|
74
|
-
"message": "validation failed",
|
|
75
|
-
"code": "VALIDATION_ERROR",
|
|
76
|
-
"details": { "field": "email", "reason": "required" }
|
|
77
|
-
}
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
## 📋 Frontend Conventions
|
|
81
|
-
|
|
82
|
-
### Component Naming
|
|
83
|
-
|
|
84
|
-
| Type | Convention | Example |
|
|
85
|
-
| ---------- | ------------------- | ------------------ |
|
|
86
|
-
| Page | `kebab-case.vue` | `game-servers.vue` |
|
|
87
|
-
| Component | `PascalCase.vue` | `PackageCard.vue` |
|
|
88
|
-
| Composable | `use{Name}.ts` | `usePackages.ts` |
|
|
89
|
-
| Store | `use{Name}Store.ts` | `useAuthStore.ts` |
|
|
90
|
-
|
|
91
|
-
### API Call Pattern
|
|
92
|
-
|
|
93
|
-
```typescript
|
|
94
|
-
// ✅ Correct: composable with proper error handling
|
|
95
|
-
export const usePackages = () => {
|
|
96
|
-
const { data, error, refresh } = useFetch("/api/v1/packages", {
|
|
97
|
-
key: "packages",
|
|
98
|
-
lazy: true,
|
|
99
|
-
});
|
|
100
|
-
return { packages: data, error, refresh };
|
|
101
|
-
};
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
### Modal Pattern (Nuxt UI v4)
|
|
105
|
-
|
|
106
|
-
```vue
|
|
107
|
-
<!-- ✅ Correct: UModal with v-model -->
|
|
108
|
-
<UModal v-model:open="isOpen">
|
|
109
|
-
<template #header>
|
|
110
|
-
<h3>{{ title }}</h3>
|
|
111
|
-
</template>
|
|
112
|
-
<template #body>
|
|
113
|
-
<slot />
|
|
114
|
-
</template>
|
|
115
|
-
</UModal>
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
## 📋 Domain Models
|
|
119
|
-
|
|
120
|
-
| Domain | Go Package | API Prefix | Frontend Page |
|
|
121
|
-
| ------------ | ---------------------- | ---------------------- | --------------------- |
|
|
122
|
-
| Packages | `internal/packages` | `/api/v1/packages` | `/admin/packages` |
|
|
123
|
-
| Licenses | `internal/licenses` | `/api/v1/licenses` | `/admin/licenses` |
|
|
124
|
-
| Game Servers | `internal/gameservers` | `/api/v1/game-servers` | `/admin/game-servers` |
|
|
125
|
-
| Points | `internal/points` | `/api/v1/points` | `/admin/points` |
|
|
126
|
-
| Payments | `internal/payments` | `/api/v1/payments` | `/admin/payments` |
|
|
127
|
-
| Users | `internal/users` | `/api/v1/users` | `/admin/users` |
|
|
128
|
-
|
|
129
|
-
## ⚠️ Anti-Patterns
|
|
130
|
-
|
|
131
|
-
| ❌ Don't | ✅ Do |
|
|
132
|
-
| --------------------------- | ------------------------- |
|
|
133
|
-
| Handle logic in handler | Delegate to service layer |
|
|
134
|
-
| Raw SQL in handlers | Repository pattern |
|
|
135
|
-
| `$fetch` without `useFetch` | Use `useFetch` for SSR |
|
|
136
|
-
| Inline modal content | Extract to component |
|
|
137
|
-
| Global state | Pinia store per domain |
|
|
138
|
-
|
|
139
|
-
---
|
|
140
|
-
|
|
141
|
-
_DOMYH Awesome Code — AutoDomyh API Conventions (Private)_
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
# =============================================================================
|
|
2
|
-
# conventions.yaml — AutoDomyh Project Conventions (Private)
|
|
3
|
-
# =============================================================================
|
|
4
|
-
|
|
5
|
-
version: "1.0.0"
|
|
6
|
-
|
|
7
|
-
backend:
|
|
8
|
-
language: "Go 1.23+"
|
|
9
|
-
architecture: "Modular Monolith"
|
|
10
|
-
patterns:
|
|
11
|
-
- name: "Atomic Delegation"
|
|
12
|
-
desc: "Handler → Service → Repository — no logic in handlers"
|
|
13
|
-
layers:
|
|
14
|
-
handler: "HTTP parsing, response formatting"
|
|
15
|
-
service: "Business logic, validation, orchestration"
|
|
16
|
-
repository: "Database operations (GORM)"
|
|
17
|
-
|
|
18
|
-
- name: "Router Mounting"
|
|
19
|
-
desc: "Each domain module mounts routes at /api/v1/{domain}"
|
|
20
|
-
pattern: "module.Mount(router)"
|
|
21
|
-
|
|
22
|
-
- name: "Cache-Aside (PERF-001)"
|
|
23
|
-
desc: "Redis cache with TTL, invalidate on write"
|
|
24
|
-
implementation: "Check cache → miss → fetch DB → set cache"
|
|
25
|
-
|
|
26
|
-
- name: "Unified Error Response"
|
|
27
|
-
desc: "All errors use standard JSON format"
|
|
28
|
-
fields: ["error", "message", "code", "details"]
|
|
29
|
-
|
|
30
|
-
naming:
|
|
31
|
-
packages: "lowercase, singular (user, payment, license)"
|
|
32
|
-
handlers: "PascalCase with Handler suffix (PackageHandler)"
|
|
33
|
-
services: "PascalCase with Service suffix (PackageService)"
|
|
34
|
-
repositories: "PascalCase with Repository suffix (PackageRepository)"
|
|
35
|
-
models: "PascalCase, singular (Package, License, User)"
|
|
36
|
-
tables: "snake_case, plural (packages, licenses, users)"
|
|
37
|
-
|
|
38
|
-
frontend:
|
|
39
|
-
framework: "Nuxt 4"
|
|
40
|
-
ui_library: "Nuxt UI v4"
|
|
41
|
-
patterns:
|
|
42
|
-
- name: "Composable Pattern"
|
|
43
|
-
desc: "All API calls via composables with useFetch"
|
|
44
|
-
convention: "use{Domain}.ts"
|
|
45
|
-
|
|
46
|
-
- name: "Modal Pattern"
|
|
47
|
-
desc: "UModal with v-model:open and slot structure"
|
|
48
|
-
slots: ["header", "body", "footer"]
|
|
49
|
-
|
|
50
|
-
- name: "DropdownMenu Pattern"
|
|
51
|
-
desc: "UDropdownMenu with :items array binding"
|
|
52
|
-
api: "items prop, @select event"
|
|
53
|
-
|
|
54
|
-
- name: "Table Pattern"
|
|
55
|
-
desc: "UTable with :rows and :columns"
|
|
56
|
-
features: ["sorting", "pagination", "selection"]
|
|
57
|
-
|
|
58
|
-
naming:
|
|
59
|
-
pages: "kebab-case.vue (game-servers.vue)"
|
|
60
|
-
components: "PascalCase.vue (PackageCard.vue)"
|
|
61
|
-
composables: "use{Name}.ts (usePackages.ts)"
|
|
62
|
-
stores: "use{Name}Store.ts (useAuthStore.ts)"
|
|
63
|
-
types: "types/{domain}.ts (types/package.ts)"
|
|
64
|
-
|
|
65
|
-
design:
|
|
66
|
-
theme: "Dark Glassmorphism"
|
|
67
|
-
accent: "#3b82f6"
|
|
68
|
-
fonts: ["Inter", "JetBrains Mono"]
|
|
69
|
-
|
|
70
|
-
domains:
|
|
71
|
-
- id: packages
|
|
72
|
-
go_package: "internal/packages"
|
|
73
|
-
api: "/api/v1/packages"
|
|
74
|
-
frontend: "/admin/packages"
|
|
75
|
-
operations: [list, create, update, delete, toggle-status]
|
|
76
|
-
|
|
77
|
-
- id: licenses
|
|
78
|
-
go_package: "internal/licenses"
|
|
79
|
-
api: "/api/v1/licenses"
|
|
80
|
-
frontend: "/admin/licenses"
|
|
81
|
-
operations: [list, create, revoke, verify, purchase]
|
|
82
|
-
|
|
83
|
-
- id: game-servers
|
|
84
|
-
go_package: "internal/gameservers"
|
|
85
|
-
api: "/api/v1/game-servers"
|
|
86
|
-
frontend: "/admin/game-servers"
|
|
87
|
-
operations: [list, create, update, delete, status]
|
|
88
|
-
|
|
89
|
-
- id: points
|
|
90
|
-
go_package: "internal/points"
|
|
91
|
-
api: "/api/v1/points"
|
|
92
|
-
frontend: "/admin/points"
|
|
93
|
-
operations: [balance, add, deduct, history]
|
|
94
|
-
|
|
95
|
-
- id: payments
|
|
96
|
-
go_package: "internal/payments"
|
|
97
|
-
api: "/api/v1/payments"
|
|
98
|
-
frontend: "/admin/payments"
|
|
99
|
-
operations: [list, create, verify, webhook, reconcile]
|
|
100
|
-
|
|
101
|
-
- id: users
|
|
102
|
-
go_package: "internal/users"
|
|
103
|
-
api: "/api/v1/users"
|
|
104
|
-
frontend: "/admin/users"
|
|
105
|
-
operations: [list, create, update, ban, roles]
|
|
106
|
-
|
|
107
|
-
# _DOMYH Awesome Code • AutoDomyh Conventions (Private)_
|