minimal-vibe-coding-kit 0.3.0 → 0.4.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/skills/agentshield-security-review/SKILL.md +6 -6
- package/.agents/skills/agentshield-security-review/references/native-install.md +10 -10
- package/.agents/skills/agentshield-security-review/references/report-template.md +1 -1
- package/.agents/skills/agentshield-security-review/scripts/agentshield_repo_probe.py +3 -3
- package/.agents/skills/autoresearch-coding/README.md +1 -1
- package/.agents/skills/autoresearch-coding/SKILL.md +4 -4
- package/.agents/skills/daily-workflow-curator/SKILL.md +3 -3
- package/.agents/skills/parallel-analysis/SKILL.md +160 -0
- package/.agents/skills/path-sensitive-shell-safety/SKILL.md +68 -0
- package/.agents/skills/path-sensitive-shell-safety/references/workflow.md +127 -0
- package/.agents/skills/vibekit-init/SKILL.md +6 -6
- package/.claude/commands/vibe-finalize.md +1 -1
- package/.claude/rules/security.md +2 -0
- package/.claude/rules/tooling.md +1 -1
- package/.claude/skills/agentshield-security-review/SKILL.md +6 -6
- package/.claude/skills/agentshield-security-review/references/native-install.md +10 -10
- package/.claude/skills/agentshield-security-review/references/report-template.md +1 -1
- package/.claude/skills/agentshield-security-review/scripts/agentshield_repo_probe.py +3 -3
- package/.claude/skills/autoresearch-coding/README.md +1 -1
- package/.claude/skills/autoresearch-coding/SKILL.md +4 -4
- package/.claude/skills/daily-workflow-curator/SKILL.md +3 -3
- package/.claude/skills/parallel-analysis/SKILL.md +160 -0
- package/.claude/skills/path-sensitive-shell-safety/SKILL.md +68 -0
- package/.claude/skills/path-sensitive-shell-safety/references/workflow.md +127 -0
- package/.claude/skills/vibekit-init/SKILL.md +6 -6
- package/.codex-plugin/plugin.json +2 -2
- package/.cursor/commands/vibe-finalize.md +1 -1
- package/.cursor/rules/001-vibe-core.mdc +1 -1
- package/.cursor/rules/010-init.mdc +1 -1
- package/.cursor/rules/020-security-agentshield.mdc +2 -2
- package/.cursor/rules/030-autoresearch-loop.mdc +1 -1
- package/.cursor/skills/parallel-analysis/SKILL.md +160 -0
- package/.cursor/skills/path-sensitive-shell-safety/SKILL.md +68 -0
- package/.cursor/skills/path-sensitive-shell-safety/references/workflow.md +127 -0
- package/.vibekit/commands/vibe-finalize.md +3 -0
- package/{.vbkit-docs → .vibekit/docs}/AUTORESEARCH_LEDGER.md +3 -3
- package/{.vbkit-docs → .vibekit/docs}/BACKBONE_REFERENCE.md +1 -1
- package/{.vbkit-docs → .vibekit/docs}/INSTALL.md +16 -16
- package/{.vbkit-docs → .vibekit/docs}/RESEARCH_NOTES.md +1 -1
- package/{.vbkit-docs → .vibekit/docs}/SECURITY_MODEL.md +2 -2
- package/{.vbkit-docs → .vibekit/docs}/TOOLING_GUIDE.md +2 -2
- package/{.vbkit-docs → .vibekit/docs}/templates/CONTEXT_TEMPLATE.md +1 -1
- package/{.vbkit-docs → .vibekit/docs}/templates/PRD_TEMPLATE.md +1 -1
- package/{CLAUDE-template.md → .vibekit/init/CLAUDE-template.md} +1 -1
- package/{FIRST_PROMPT.md → .vibekit/init/FIRST_PROMPT.md} +6 -6
- package/{FIRST_TIME_INIT.md → .vibekit/init/FIRST_TIME_INIT.md} +14 -14
- package/{.vbkit-scripts → .vibekit/scripts}/agentshield-probe.mjs +1 -1
- package/{.vbkit-scripts → .vibekit/scripts}/daily-enhance.mjs +3 -3
- package/{.vbkit-scripts → .vibekit/scripts}/doctor.mjs +6 -6
- package/{.vbkit-scripts → .vibekit/scripts}/init-backbone.mjs +22 -22
- package/{.vbkit-scripts → .vibekit/scripts}/mvck.mjs +61 -25
- package/{.vbkit-scripts → .vibekit/scripts}/test-install.mjs +32 -18
- package/{.vbkit-scripts → .vibekit/scripts}/validate-kit.mjs +47 -31
- package/{.vbkit-scripts → .vibekit/scripts}/vibekit-finalize.mjs +7 -7
- package/{skills → .vibekit/skills}/agentshield-security-review/SKILL.md +6 -6
- package/{skills → .vibekit/skills}/agentshield-security-review/references/native-install.md +10 -10
- package/{skills → .vibekit/skills}/agentshield-security-review/references/report-template.md +1 -1
- package/{skills → .vibekit/skills}/agentshield-security-review/scripts/agentshield_repo_probe.py +3 -3
- package/{skills → .vibekit/skills}/autoresearch-coding/README.md +1 -1
- package/{skills → .vibekit/skills}/autoresearch-coding/SKILL.md +4 -4
- package/{skills → .vibekit/skills}/daily-workflow-curator/SKILL.md +3 -3
- package/.vibekit/skills/parallel-analysis/SKILL.md +160 -0
- package/.vibekit/skills/path-sensitive-shell-safety/SKILL.md +68 -0
- package/.vibekit/skills/path-sensitive-shell-safety/references/workflow.md +127 -0
- package/{skills → .vibekit/skills}/vibekit-init/SKILL.md +6 -6
- package/AGENTS.md +5 -2
- package/CHANGELOG.md +13 -2
- package/CONTRIBUTING.md +3 -3
- package/README.md +133 -394
- package/README.vi.md +135 -334
- package/backbone.yml +8 -7
- package/bin/mvck.js +1 -1
- package/bin/vibe-kit.js +1 -1
- package/install.ps1 +1 -1
- package/install.sh +5 -3
- package/package.json +22 -18
- package/.vbkit-commands/vibe-finalize.md +0 -3
- /package/{.vbkit-commands → .vibekit/commands}/autoresearch-coding.md +0 -0
- /package/{.vbkit-commands → .vibekit/commands}/council.md +0 -0
- /package/{.vbkit-commands → .vibekit/commands}/daily-enhance.md +0 -0
- /package/{.vbkit-commands → .vibekit/commands}/init-vibe.md +0 -0
- /package/{.vbkit-commands → .vibekit/commands}/security-scan.md +0 -0
- /package/{.vbkit-docs → .vibekit/docs}/backbone.schema.json +0 -0
- /package/{.vbkit-scripts → .vibekit/scripts}/pack-dry-run.mjs +0 -0
- /package/{skills → .vibekit/skills}/agentshield-security-review/agents/openai.yaml +0 -0
- /package/{skills → .vibekit/skills}/agentshield-security-review/references/review-checklist.md +0 -0
- /package/{skills → .vibekit/skills}/autoresearch-coding/references/experiment-contract.md +0 -0
- /package/{skills → .vibekit/skills}/autoresearch-coding/references/metric-extraction.md +0 -0
- /package/{skills → .vibekit/skills}/autoresearch-coding/references/result-ledger.md +0 -0
- /package/{skills → .vibekit/skills}/autoresearch-coding/scripts/log_result.py +0 -0
- /package/{skills → .vibekit/skills}/autoresearch-coding/scripts/run_logged.py +0 -0
- /package/{skills → .vibekit/skills}/clearthought/SKILL.md +0 -0
- /package/{skills → .vibekit/skills}/clearthought/examples/decision-framework.md +0 -0
- /package/{skills → .vibekit/skills}/clearthought/examples/metagame-examples.md +0 -0
- /package/{skills → .vibekit/skills}/clearthought/examples/sequential-thinking.md +0 -0
- /package/{skills → .vibekit/skills}/clearthought/references/output-schemas.md +0 -0
- /package/{skills → .vibekit/skills}/clearthought/references/parameter-reference.md +0 -0
- /package/{skills → .vibekit/skills}/coding-level/SKILL.md +0 -0
- /package/{skills → .vibekit/skills}/coding-level/references/level-0.md +0 -0
- /package/{skills → .vibekit/skills}/coding-level/references/level-1.md +0 -0
- /package/{skills → .vibekit/skills}/coding-level/references/level-2.md +0 -0
- /package/{skills → .vibekit/skills}/coding-level/references/level-3.md +0 -0
- /package/{skills → .vibekit/skills}/coding-level/references/level-4.md +0 -0
- /package/{skills → .vibekit/skills}/coding-level/references/level-5.md +0 -0
- /package/{skills → .vibekit/skills}/memento/SKILL.md +0 -0
- /package/{skills → .vibekit/skills}/reviewing-4p-priorities/SKILL.md +0 -0
- /package/{skills → .vibekit/skills}/reviewing-4p-priorities/examples.md +0 -0
- /package/{skills → .vibekit/skills}/sequential-thinking/SKILL.md +0 -0
- /package/{skills → .vibekit/skills}/sequential-thinking/examples/adaptive-depth.md +0 -0
- /package/{skills → .vibekit/skills}/sequential-thinking/examples/branching-exploration.md +0 -0
- /package/{skills → .vibekit/skills}/sequential-thinking/examples/linear-reasoning.md +0 -0
- /package/{skills → .vibekit/skills}/sequential-thinking/examples/revision-pattern.md +0 -0
- /package/{skills → .vibekit/skills}/sequential-thinking/references/output-schema.md +0 -0
- /package/{skills → .vibekit/skills}/sequential-thinking/references/parameters.md +0 -0
- /package/{skills → .vibekit/skills}/sequential-thinking/references/patterns.md +0 -0
- /package/{skills → .vibekit/skills}/visual-design-loop/SKILL.md +0 -0
- /package/{skills → .vibekit/skills}/visual-design-loop/agents/openai.yaml +0 -0
package/README.md
CHANGED
|
@@ -5,483 +5,222 @@
|
|
|
5
5
|
# Minimal Vibe Coding Kit
|
|
6
6
|
|
|
7
7
|
[](LICENSE)
|
|
8
|
-
[](CHANGELOG.md)
|
|
9
9
|

|
|
10
10
|

|
|
11
11
|

|
|
12
12
|

|
|
13
13
|

|
|
14
14
|
|
|
15
|
-
**One installable AI-coding workflow kit for Claude Code, Cursor, and Codex —
|
|
15
|
+
**One installable AI-coding workflow kit for Claude Code, Cursor, and Codex — any repo, any language.**
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
Install → paste one prompt → approve the proposal → code with guardrails.
|
|
18
18
|
|
|
19
19
|
</div>
|
|
20
20
|
|
|
21
21
|
---
|
|
22
22
|
|
|
23
|
-
##
|
|
24
|
-
|
|
25
|
-
- [What's New in 0.2.0](#whats-new-in-020)
|
|
26
|
-
- [What This Kit Is](#what-this-kit-is)
|
|
27
|
-
- [Quick Start](#quick-start)
|
|
28
|
-
- [First Prompt](#first-prompt)
|
|
29
|
-
- [Install Profiles](#install-profiles)
|
|
30
|
-
- [Updating an Installed Project](#updating-an-installed-project)
|
|
31
|
-
- [Repository Layout](#repository-layout)
|
|
32
|
-
- [Workflow per Tool](#workflow-per-tool)
|
|
33
|
-
- [Commands & Skills Reference](#commands--skills-reference)
|
|
34
|
-
- [Flexible Reasoning Skills](#flexible-reasoning-skills)
|
|
35
|
-
- [Autoresearch Loop](#autoresearch-loop)
|
|
36
|
-
- [AgentShield Security Review](#agentshield-security-review)
|
|
37
|
-
- [Daily Enhancement](#daily-enhancement)
|
|
38
|
-
- [Doctor Report](#doctor-report)
|
|
39
|
-
- [Validate Before Release](#validate-before-release)
|
|
40
|
-
- [Design Goals](#design-goals)
|
|
41
|
-
- [Troubleshooting](#troubleshooting)
|
|
42
|
-
- [Contributing](#contributing)
|
|
43
|
-
- [License](#license)
|
|
44
|
-
|
|
45
|
-
> 🇻🇳 Bạn muốn đọc tiếng Việt? Xem [README.vi.md](README.vi.md).
|
|
23
|
+
## What is this?
|
|
46
24
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
## What's New in 0.2.0
|
|
50
|
-
|
|
51
|
-
| Area | Change |
|
|
52
|
-
| --- | --- |
|
|
53
|
-
| Installer | One-command CLI: `mvck install <project>` (plus `install.sh` / `install.ps1`). |
|
|
54
|
-
| Codex support | Adds `.agents/`, `.codex/`, and `.codex-plugin/plugin.json` surfaces. |
|
|
55
|
-
| Shared instructions | New `AGENTS.md` is imported by `CLAUDE.md` to avoid duplication. |
|
|
56
|
-
| Backbone | Compact `backbone.yml` template + auto-detection helper. |
|
|
57
|
-
| Skills | Adds `vibekit-init`, `agentshield-security-review`, `daily-workflow-curator`. |
|
|
58
|
-
| Security | Read-only AgentShield repo probe + scanner integration. |
|
|
59
|
-
| Daily loop | Propose-only `daily-enhance` report — never silently rewrites rules. |
|
|
60
|
-
| Validation | Syntax checks, install idempotency tests, `mvck doctor`, schema checks, and GitHub Actions workflow. |
|
|
61
|
-
|
|
62
|
-
Full notes in [CHANGELOG.md](CHANGELOG.md).
|
|
63
|
-
|
|
64
|
-
## What This Kit Is
|
|
65
|
-
|
|
66
|
-
A lightweight, project-agnostic kit of shared **rules**, **skills**, **commands**, and a **backbone manifest** that lets AI coding assistants understand any project consistently.
|
|
67
|
-
|
|
68
|
-
It is intentionally minimal:
|
|
25
|
+
A small kit of shared **rules**, **skills**, and **commands**, plus one **`backbone.yml`** manifest, so Claude Code, Cursor, and Codex all understand your project the same way.
|
|
69
26
|
|
|
70
|
-
-
|
|
71
|
-
-
|
|
72
|
-
-
|
|
73
|
-
- [backbone.yml](backbone.yml) — single source of truth for project structure, paths, and conventions.
|
|
74
|
-
- [CLAUDE-template.md](CLAUDE-template.md) — a short `CLAUDE.md` skeleton that imports `AGENTS.md`.
|
|
75
|
-
- [FIRST_TIME_INIT.md](FIRST_TIME_INIT.md) — the init runbook with guardrails for any repo.
|
|
76
|
-
|
|
77
|
-
The flow:
|
|
78
|
-
|
|
79
|
-
1. Install the kit into a project. `backbone.yml` ships with `meta.template_status: uninitialized` and `<<PLACEHOLDER>>` values.
|
|
80
|
-
2. Paste the [first prompt](#first-prompt) into Claude Code, Cursor, or Codex.
|
|
81
|
-
3. The agent scans your repo for stack fingerprints and existing conventions, then **proposes one unified diff**.
|
|
82
|
-
4. You review the inferred backbone and project rules (`yes` / `edit` / `abort`). The agent writes only after approval and flips status to `initialized`.
|
|
83
|
-
5. Every later session reads the filled `backbone.yml` and skips the init flow.
|
|
84
|
-
|
|
85
|
-
Works for single-repo, monorepo, and multi-repo layouts. No silent edits. No project-specific code in the base kit.
|
|
86
|
-
|
|
87
|
-
During first-time init, the proposal also captures repo-specific rules in `backbone.yml` under `conventions`: naming style, folder architecture, shared asset/resource access, localization/message access, generated definitions, and per-app/package differences when evidence differs.
|
|
27
|
+
- Never overwrites your existing `CLAUDE.md` / `AGENTS.md` — it only adds managed blocks.
|
|
28
|
+
- Every setup write waits for your explicit approval.
|
|
29
|
+
- Security review of agent surfaces (AgentShield) is part of the normal workflow.
|
|
88
30
|
|
|
89
31
|
## Quick Start
|
|
90
32
|
|
|
91
|
-
|
|
33
|
+
Three steps, about two minutes.
|
|
92
34
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
```bash
|
|
96
|
-
./install.sh /path/to/your-project
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
PowerShell on Windows:
|
|
100
|
-
|
|
101
|
-
```powershell
|
|
102
|
-
./install.ps1 -Target C:\path\to\your-project
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
Or with the Node CLI directly:
|
|
106
|
-
|
|
107
|
-
```bash
|
|
108
|
-
node .vbkit-scripts/mvck.mjs install /path/to/your-project --profile all
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
Once this repo is published on GitHub, end users can install from anywhere with:
|
|
35
|
+
**1. Install into your project** (no clone needed):
|
|
112
36
|
|
|
113
37
|
```bash
|
|
114
38
|
npx github:giang6283623/minimal-vibe-coding-kit install /path/to/your-project
|
|
115
39
|
```
|
|
116
40
|
|
|
117
|
-
|
|
41
|
+
From a local clone instead: `./install.sh /path/to/your-project` (Windows: `./install.ps1 -Target C:\path\to\your-project`).
|
|
118
42
|
|
|
119
|
-
|
|
120
|
-
cd /path/to/your-project
|
|
121
|
-
node .vbkit-scripts/init-backbone.mjs . --propose # preview the proposal
|
|
122
|
-
node .vbkit-scripts/init-backbone.mjs . --write --yes # write after you reviewed backbone + rules
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
Optional stack presets:
|
|
126
|
-
|
|
127
|
-
```bash
|
|
128
|
-
node .vbkit-scripts/mvck.mjs init . --preset nextjs --propose
|
|
129
|
-
node .vbkit-scripts/mvck.mjs init . --preset wordpress --propose
|
|
130
|
-
node .vbkit-scripts/mvck.mjs init . --preset python --propose
|
|
131
|
-
node .vbkit-scripts/mvck.mjs init . --preset laravel --propose
|
|
132
|
-
node .vbkit-scripts/mvck.mjs init . --preset docker --propose
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
### 3. Validate
|
|
136
|
-
|
|
137
|
-
```bash
|
|
138
|
-
npm test
|
|
139
|
-
npm run security:probe
|
|
140
|
-
node .vbkit-scripts/mvck.mjs doctor .
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
### 4. Open the project and paste the [first prompt](#first-prompt).
|
|
144
|
-
|
|
145
|
-
## First Prompt
|
|
146
|
-
|
|
147
|
-
Paste this into Claude Code, Cursor, or Codex after installing the kit:
|
|
43
|
+
**2. Open the project in Claude Code, Cursor, or Codex and paste:**
|
|
148
44
|
|
|
149
45
|
```text
|
|
150
|
-
Read FIRST_TIME_INIT.md and initialize this repo with Minimal Vibe Coding Kit.
|
|
46
|
+
Read .vibekit/init/FIRST_TIME_INIT.md and initialize this repo with Minimal Vibe Coding Kit.
|
|
151
47
|
First print the requirements you will check. Then run detection, propose one diff
|
|
152
48
|
for backbone.yml and managed instruction blocks, and wait for my yes before writing.
|
|
153
|
-
Include inferred project conventions for naming, architecture, resources,
|
|
154
|
-
localization, generated definitions, and per-app/package differences.
|
|
155
|
-
After approval, write the files, run validation, and summarize what changed.
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
Tool-specific variants live in [FIRST_PROMPT.md](FIRST_PROMPT.md).
|
|
159
|
-
|
|
160
|
-
## Install Profiles
|
|
161
|
-
|
|
162
|
-
Install everything (default):
|
|
163
|
-
|
|
164
|
-
```bash
|
|
165
|
-
node .vbkit-scripts/mvck.mjs install . --profile all
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
Install only what you use:
|
|
169
|
-
|
|
170
|
-
```bash
|
|
171
|
-
node .vbkit-scripts/mvck.mjs install . --profile claude # Claude Code only
|
|
172
|
-
node .vbkit-scripts/mvck.mjs install . --profile claude,cursor # Claude + Cursor
|
|
173
|
-
node .vbkit-scripts/mvck.mjs install . --profile codex # Codex (and any AGENTS.md agent)
|
|
174
49
|
```
|
|
175
50
|
|
|
176
|
-
|
|
51
|
+
**3. Review the proposed diff and answer `yes`.**
|
|
177
52
|
|
|
178
|
-
|
|
53
|
+
The agent fills `backbone.yml` with your detected stack and conventions and flips it to `initialized`. Done — every later session reads it automatically and skips init.
|
|
179
54
|
|
|
180
|
-
|
|
55
|
+
Optional health check any time:
|
|
181
56
|
|
|
182
57
|
```bash
|
|
183
|
-
|
|
58
|
+
node .vibekit/scripts/mvck.mjs doctor .
|
|
184
59
|
```
|
|
185
60
|
|
|
186
|
-
|
|
61
|
+
## What lands in your repo
|
|
187
62
|
|
|
188
|
-
|
|
189
|
-
node /path/to/minimal-vibe-coding-kit/.vbkit-scripts/mvck.mjs update /path/to/your-project
|
|
190
|
-
```
|
|
191
|
-
|
|
192
|
-
`update` is designed to be safe by default:
|
|
193
|
-
|
|
194
|
-
- **Refreshes kit-owned files only**: `skills/`, `.vbkit-commands/`, `.vbkit-scripts/`, `.vbkit-docs/`, and the Claude/Cursor/Codex skill, command, rule, and agent mirrors. New kit skills are added automatically.
|
|
195
|
-
- **Never overwrites user-owned files**: `backbone.yml`, `CLAUDE.md`, `AGENTS.md` content outside the managed block, `.claude/settings.json`, and `.cursor/settings.json` are seeded only if missing.
|
|
196
|
-
- **Managed blocks, not rewrites**: `AGENTS.md`, `CLAUDE.md`, and `.gitignore` are updated only inside the `BEGIN/END: minimal-vibe-coding-kit` markers.
|
|
197
|
-
- **Backs up before replacing**: any kit file that changed locally is copied to `.vibekit/update-backup/<timestamp>/` before being replaced (skip with `--no-backup`).
|
|
198
|
-
- **Never deletes** files you added, and skips re-seeding one-time files on finalized projects.
|
|
199
|
-
- **Version-stamped**: the installed kit version is recorded in `.vibekit/KIT_VERSION`; `mvck doctor` reports it.
|
|
200
|
-
|
|
201
|
-
Preview first if you want:
|
|
202
|
-
|
|
203
|
-
```bash
|
|
204
|
-
npx --yes minimal-vibe-coding-kit@latest update . --dry-run
|
|
205
|
-
npx --yes minimal-vibe-coding-kit@latest update . --dry-run --json
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
Recommended flow: `update . --dry-run` → `update .` → `npm run validate` (or `node .vbkit-scripts/validate-kit.mjs .`) → review the diff in git before committing.
|
|
209
|
-
|
|
210
|
-
## Repository Layout
|
|
63
|
+
Install adds exactly this — nothing else in your project is touched:
|
|
211
64
|
|
|
212
65
|
```text
|
|
213
|
-
|
|
214
|
-
├── backbone.yml
|
|
215
|
-
├── AGENTS.md
|
|
216
|
-
├── CLAUDE
|
|
217
|
-
├──
|
|
218
|
-
├──
|
|
219
|
-
|
|
220
|
-
├── .
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
│ ├── vibekit-init/
|
|
234
|
-
│ ├── autoresearch-coding/
|
|
235
|
-
│ ├── agentshield-security-review/
|
|
236
|
-
│ ├── daily-workflow-curator/
|
|
237
|
-
│ ├── clearthought/
|
|
238
|
-
│ ├── sequential-thinking/
|
|
239
|
-
│ ├── reviewing-4p-priorities/
|
|
240
|
-
│ └── visual-design-loop/
|
|
241
|
-
├── .vbkit-commands/ ← shared command prompts
|
|
242
|
-
│
|
|
243
|
-
├── .vbkit-scripts/ ← mvck CLI, init-backbone, daily-enhance, validate-kit, doctor, install tests
|
|
244
|
-
├── bin/ ← npm bin entries (mvck, vibe-kit)
|
|
245
|
-
├── .vbkit-docs/ ← deeper references (kept out of root)
|
|
246
|
-
└── .github/workflows/ ← repo validation workflow
|
|
247
|
-
```
|
|
248
|
-
|
|
249
|
-
## Workflow per Tool
|
|
250
|
-
|
|
251
|
-
### Claude Code
|
|
252
|
-
|
|
253
|
-
Claude reads `CLAUDE.md`, `AGENTS.md`, `.claude/rules`, `.claude/commands`, `.claude/agents`, and `.claude/skills`.
|
|
254
|
-
|
|
255
|
-
Useful slash commands:
|
|
66
|
+
your-project/
|
|
67
|
+
├── backbone.yml ← project map agents read first (single source of truth)
|
|
68
|
+
├── AGENTS.md ← shared agent instructions (managed block)
|
|
69
|
+
├── CLAUDE.md ← short; imports AGENTS.md (created only if missing)
|
|
70
|
+
├── .gitignore ← kit entries appended inside a managed block
|
|
71
|
+
├── .claude/ ← Claude Code: rules, commands, agents, skills
|
|
72
|
+
├── .cursor/ ← Cursor: rules, commands, skills
|
|
73
|
+
├── .agents/ ← Codex / portable skills
|
|
74
|
+
├── .codex/ .codex-plugin/ ← Codex config example + plugin manifest
|
|
75
|
+
└── .vibekit/ ← everything kit-owned, in ONE folder
|
|
76
|
+
├── skills/ ← canonical shared skills (mirrored to the harness dirs)
|
|
77
|
+
├── commands/ ← shared command prompts
|
|
78
|
+
├── scripts/ ← mvck CLI, init, validate, doctor, security probe
|
|
79
|
+
├── docs/ ← deeper references
|
|
80
|
+
└── init/ ← one-time onboarding files (removable via /vibe-finalize)
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Existing files are never replaced — the kit merges managed blocks (`BEGIN/END: minimal-vibe-coding-kit`) and skips anything you already own.
|
|
84
|
+
|
|
85
|
+
## How the pieces connect
|
|
256
86
|
|
|
257
87
|
```text
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
/
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
.codex/config.example.toml
|
|
289
|
-
.codex-plugin/plugin.json
|
|
290
|
-
backbone.yml
|
|
291
|
-
```
|
|
292
|
-
|
|
293
|
-
Recommended prompt:
|
|
294
|
-
|
|
295
|
-
```text
|
|
296
|
-
Read AGENTS.md and FIRST_TIME_INIT.md. Use the vibekit-init skill if available.
|
|
297
|
-
Initialize backbone.yml, keep AGENTS.md concise, and wait for approval before writing.
|
|
298
|
-
```
|
|
299
|
-
|
|
300
|
-
## Commands & Skills Reference
|
|
301
|
-
|
|
302
|
-
### Commands
|
|
303
|
-
|
|
304
|
-
| Command | Backed by skill | Use when |
|
|
88
|
+
You (prompt) ──▶ Claude Code / Cursor / Codex
|
|
89
|
+
│ reads first
|
|
90
|
+
▼
|
|
91
|
+
backbone.yml + AGENTS.md / CLAUDE.md + rules
|
|
92
|
+
│ loads on demand
|
|
93
|
+
▼
|
|
94
|
+
skills (procedures) + commands (shortcuts)
|
|
95
|
+
│ guarded by
|
|
96
|
+
▼
|
|
97
|
+
protected paths · propose-before-write · AgentShield probe
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
- **`backbone.yml`** — paths, conventions, protected paths, and the validate command for your repo.
|
|
101
|
+
- **Rules** — short, always-loaded guardrails (read backbone first, small diffs, security review on agent surfaces).
|
|
102
|
+
- **Skills** — repeatable procedures, loaded only when a task needs them.
|
|
103
|
+
- **Commands** — one-word shortcuts to the most common skills.
|
|
104
|
+
|
|
105
|
+
## Guide — day-to-day usage
|
|
106
|
+
|
|
107
|
+
1. **Just code.** Ask for features and fixes normally; the agent follows `backbone.yml` conventions and keeps diffs small.
|
|
108
|
+
2. **Big or vague task?** Start with the `clearthought` or `sequential-thinking` skill to get a plan first.
|
|
109
|
+
3. **Repo-wide question or big review?** Use `parallel-analysis` — it fans out read-only analysis lanes and verifies the merged result.
|
|
110
|
+
4. **Changed `.claude/`, skills, hooks, or installer scripts?** Run `/security-scan` before merging.
|
|
111
|
+
5. **Want measurable improvements?** Run `/autoresearch-coding` with a metric and budget.
|
|
112
|
+
6. **Keep the setup sharp:** `/daily-enhance` proposes improvements — it never applies them silently.
|
|
113
|
+
7. **Onboarding finished for good?** `/vibe-finalize` moves one-time bootstrap files out.
|
|
114
|
+
|
|
115
|
+
## Commands
|
|
116
|
+
|
|
117
|
+
| Command | What it does | Example |
|
|
305
118
|
| --- | --- | --- |
|
|
306
|
-
| `/init-vibe` |
|
|
307
|
-
| `/security-scan` |
|
|
308
|
-
| `/daily-enhance` |
|
|
309
|
-
| `/autoresearch-coding` |
|
|
310
|
-
| `/council` |
|
|
311
|
-
|
|
312
|
-
### Skills (`skills/` is canonical; tool-specific skill folders mirror native entrypoints where applicable)
|
|
119
|
+
| `/init-vibe` | First-time init or repair: propose one diff, wait for approval. | `/init-vibe` — then review the diff and answer `yes`. |
|
|
120
|
+
| `/security-scan` | Read-only AgentShield probe + optional scanner over agent surfaces. | `/security-scan` before merging changes to `.claude/**` or skills. |
|
|
121
|
+
| `/daily-enhance` | Propose-only report to improve rules, skills, and workflows. | `/daily-enhance` — review the proposed diff, then approve. |
|
|
122
|
+
| `/autoresearch-coding` | Metric-driven experiment loop with baseline and budget. | `/autoresearch-coding` Goal: fewer lint errors. Budget: 3. |
|
|
123
|
+
| `/council` | Coordinates reviewer/researcher/analyst agents into one merged plan. | `/council` on this branch diff. |
|
|
124
|
+
| `/vibe-finalize` | Graduate the project: move one-time bootstrap files to `_vibekit-cleanup/`. | `/vibe-finalize` — preview first, apply after approval. |
|
|
313
125
|
|
|
314
|
-
|
|
315
|
-
| --- | --- |
|
|
316
|
-
| [`vibekit-init`](skills/vibekit-init/SKILL.md) | First-time init flow: detect stack, propose diff, wait for `yes`, then write. |
|
|
317
|
-
| [`autoresearch-coding`](skills/autoresearch-coding/SKILL.md) | Metric-driven research loop with baseline, experiments, and a results log. |
|
|
318
|
-
| [`agentshield-security-review`](skills/agentshield-security-review/SKILL.md) | Read-only probe + optional scanner pass for agent-surface security. |
|
|
319
|
-
| [`daily-workflow-curator`](skills/daily-workflow-curator/SKILL.md) | Daily report + diff proposal. Never writes silently. |
|
|
320
|
-
| [`clearthought`](skills/clearthought/SKILL.md) | Flexible structured reasoning for ambiguous coding, debugging, design, and implementation planning. |
|
|
321
|
-
| [`sequential-thinking`](skills/sequential-thinking/SKILL.md) | Step progression, revisions, branches, and task splitting for complex work. |
|
|
322
|
-
| [`reviewing-4p-priorities`](skills/reviewing-4p-priorities/SKILL.md) | P0-P4 triage for bugs, review findings, risks, and fix order. |
|
|
323
|
-
| [`visual-design-loop`](skills/visual-design-loop/SKILL.md) | Screenshot-driven UI polish loop for render-review-fix design improvement. |
|
|
324
|
-
| [`memento`](skills/memento/SKILL.md) | Cross-session working memory: write `MEMENTO.md` before closing a multi-day task, resume from it next session. User-invoked (`/memento`). |
|
|
325
|
-
| [`coding-level`](skills/coding-level/SKILL.md) | Set the explanation register from 0 (ELI5) to 5 (expert peer); active until reinvoked. User-invoked (`/coding-level N`). |
|
|
126
|
+
## Skills
|
|
326
127
|
|
|
327
|
-
|
|
128
|
+
All 12 skills live in `.vibekit/skills/` and are mirrored for each tool. Invoke them by name ("Use the X skill…") or via the commands above.
|
|
328
129
|
|
|
329
|
-
|
|
130
|
+
| Skill | Use it when | Example prompt |
|
|
131
|
+
| --- | --- | --- |
|
|
132
|
+
| `vibekit-init` | First-time setup, or `backbone.yml` / managed blocks need repair. | "Use the vibekit-init skill. Propose one diff and wait for my yes." |
|
|
133
|
+
| `parallel-analysis` | Repo-wide questions, large diff reviews, consistency audits. | "Use parallel-analysis: where is auth handled and what depends on it?" |
|
|
134
|
+
| `agentshield-security-review` | Auditing agent config, skills, hooks, MCP, commands before merge. | "Use agentshield-security-review on .claude/** and .vibekit/skills/**." |
|
|
135
|
+
| `autoresearch-coding` | Improving the repo through measured experiments. | "Use autoresearch-coding. Metric: `npm test`. Direction: higher. Budget: 3." |
|
|
136
|
+
| `daily-workflow-curator` | Periodic tune-up of rules, skills, and workflows (propose-only). | "Use daily-workflow-curator and propose today's improvements." |
|
|
137
|
+
| `path-sensitive-shell-safety` | Before editing shell/installer/deploy logic with path variables or `rm`/`mv`/`rsync`. | "Use path-sensitive-shell-safety before changing this cleanup script." |
|
|
138
|
+
| `visual-design-loop` | UI polish: render → screenshot → review → fix, in a loop. | "Use visual-design-loop on /dashboard. Budget 3 loops." |
|
|
139
|
+
| `clearthought` | Ambiguous requirements, design tradeoffs, risky decisions. | "Use clearthought. Operation: implementation_plan. Split this feature into safe tasks." |
|
|
140
|
+
| `sequential-thinking` | Step-by-step decomposition of complex work. | "Use sequential-thinking. Break this refactor into ordered steps with tests." |
|
|
141
|
+
| `reviewing-4p-priorities` | Triaging bugs/findings into P0–P4 fix order. | "Use reviewing-4p-priorities. Classify these findings and give a fix sequence." |
|
|
142
|
+
| `memento` | Multi-day tasks: save context before stopping, resume next session. | "/memento — write MEMENTO.md with Goal, Done, Stuck, Next." |
|
|
143
|
+
| `coding-level` | Setting how detailed explanations should be (0 = ELI5 … 5 = expert). | "/coding-level 2" |
|
|
330
144
|
|
|
331
|
-
##
|
|
145
|
+
## Advanced
|
|
332
146
|
|
|
333
|
-
|
|
147
|
+
### Install profiles
|
|
334
148
|
|
|
335
|
-
|
|
149
|
+
Install only the surfaces you use (default is `all`):
|
|
336
150
|
|
|
337
|
-
```
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
151
|
+
```bash
|
|
152
|
+
npx github:giang6283623/minimal-vibe-coding-kit install . --profile claude # Claude Code only
|
|
153
|
+
npx github:giang6283623/minimal-vibe-coding-kit install . --profile claude,cursor # Claude + Cursor
|
|
154
|
+
npx github:giang6283623/minimal-vibe-coding-kit install . --profile codex # Codex / AGENTS.md agents
|
|
341
155
|
```
|
|
342
156
|
|
|
343
|
-
|
|
157
|
+
Flags: `--force` (overwrite existing kit files), `--dry-run` (preview), `--json` (machine-readable plan).
|
|
344
158
|
|
|
345
|
-
|
|
346
|
-
Use the sequential-thinking skill.
|
|
347
|
-
Break this complex requirement into small implementation steps with tests.
|
|
348
|
-
```
|
|
159
|
+
### Updating an installed project
|
|
349
160
|
|
|
350
|
-
|
|
161
|
+
Run inside your project when the kit ships new skills or scripts:
|
|
351
162
|
|
|
352
|
-
```
|
|
353
|
-
|
|
354
|
-
|
|
163
|
+
```bash
|
|
164
|
+
npx github:giang6283623/minimal-vibe-coding-kit update . --dry-run # preview
|
|
165
|
+
npx github:giang6283623/minimal-vibe-coding-kit update . # apply
|
|
355
166
|
```
|
|
356
167
|
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
1. Run `clearthought` to clarify the problem and select the reasoning mode.
|
|
360
|
-
2. Run `sequential-thinking` to split the work into small tasks.
|
|
361
|
-
3. Run `reviewing-4p-priorities` to decide what must be fixed first.
|
|
362
|
-
4. Run the validation command from `backbone.yml`.
|
|
168
|
+
`update` refreshes **kit-owned files only**, never touches `backbone.yml` or your own content, updates managed blocks in place, and backs up changed files to `.vibekit/update-backup/<timestamp>/`. Details: [.vibekit/docs/INSTALL.md](.vibekit/docs/INSTALL.md).
|
|
363
169
|
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
Use this when you want the agent to improve a repo through measurable experiments:
|
|
170
|
+
### Autoresearch loop
|
|
367
171
|
|
|
368
172
|
```text
|
|
369
173
|
Use the autoresearch-coding skill.
|
|
370
|
-
Goal: improve
|
|
371
|
-
|
|
372
|
-
Direction: higher.
|
|
373
|
-
Editable paths: README.md .vbkit-docs .vbkit-scripts skills .vbkit-commands .claude .cursor .agents
|
|
374
|
-
.codex-plugin backbone.yml AGENTS.md CLAUDE-template.md
|
|
375
|
-
FIRST_TIME_INIT.md package.json install.sh install.ps1.
|
|
376
|
-
Protected paths: .git .env* node_modules vendor secrets lockfiles.
|
|
174
|
+
Goal: improve maintainability. Metric command: <your validate command>. Direction: higher.
|
|
175
|
+
Editable paths: src/ docs/. Protected paths: .git .env* node_modules lockfiles.
|
|
377
176
|
Budget: 3.
|
|
378
177
|
```
|
|
379
178
|
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
1. Run baseline metric.
|
|
383
|
-
2. Make one small experiment.
|
|
384
|
-
3. Run metric again.
|
|
385
|
-
4. Keep only improvements or safe simplifications.
|
|
386
|
-
5. Log result.
|
|
387
|
-
6. Repeat until budget is done.
|
|
388
|
-
|
|
389
|
-
## AgentShield Security Review
|
|
390
|
-
|
|
391
|
-
Fast read-only probe (no install needed beyond Python):
|
|
179
|
+
Contract: baseline first → one small experiment at a time → keep only metric-positive changes → log everything.
|
|
392
180
|
|
|
393
|
-
|
|
394
|
-
node .vbkit-scripts/agentshield-probe.mjs .
|
|
395
|
-
```
|
|
396
|
-
|
|
397
|
-
Optional full scanner pass when npm is available:
|
|
181
|
+
### Security review (AgentShield)
|
|
398
182
|
|
|
399
183
|
```bash
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
Security rules:
|
|
404
|
-
|
|
405
|
-
- Do not run untrusted hooks, MCP servers, package lifecycle scripts, deploy scripts, migrations, or destructive commands just to inspect a repo.
|
|
406
|
-
- Never print full secrets.
|
|
407
|
-
- Any change to `CLAUDE.md`, `AGENTS.md`, `.claude/**`, `.cursor/**`, `.agents/**`, `.codex-plugin/**`, `skills/**`, `.vbkit-commands/**`, `.vbkit-scripts/**`, hooks, or MCP config should trigger an AgentShield-style review.
|
|
408
|
-
|
|
409
|
-
## Daily Enhancement
|
|
410
|
-
|
|
411
|
-
Generate a local report:
|
|
412
|
-
|
|
413
|
-
```bash
|
|
414
|
-
node .vbkit-scripts/daily-enhance.mjs . --write-report
|
|
415
|
-
```
|
|
416
|
-
|
|
417
|
-
Prompt for an agent:
|
|
418
|
-
|
|
419
|
-
```text
|
|
420
|
-
Use the daily-workflow-curator skill. Run the daily report, AgentShield probe,
|
|
421
|
-
and kit validation. Propose improvements to rules, skills, workflows, and
|
|
422
|
-
backbone.yml. Do not write until I approve the diff.
|
|
184
|
+
node .vibekit/scripts/agentshield-probe.mjs . # fast read-only probe
|
|
185
|
+
npx ecc-agentshield scan --path . --format text --min-severity medium # optional full scan
|
|
423
186
|
```
|
|
424
187
|
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
## Doctor Report
|
|
188
|
+
Any change to `CLAUDE.md`, `AGENTS.md`, `.claude/**`, `.cursor/**`, `.agents/**`, `.codex-plugin/**`, or `.vibekit/skills|commands|scripts/**` should trigger a review. Model: [.vibekit/docs/SECURITY_MODEL.md](.vibekit/docs/SECURITY_MODEL.md).
|
|
428
189
|
|
|
429
|
-
|
|
190
|
+
### Doctor and reports
|
|
430
191
|
|
|
431
192
|
```bash
|
|
432
|
-
node .
|
|
193
|
+
node .vibekit/scripts/mvck.mjs doctor . # read-only health check
|
|
194
|
+
node .vibekit/scripts/mvck.mjs doctor . --write-report # writes VIBE_REPORT.md
|
|
195
|
+
node .vibekit/scripts/daily-enhance.mjs . --write-report
|
|
433
196
|
```
|
|
434
197
|
|
|
435
|
-
|
|
198
|
+
### For kit developers
|
|
436
199
|
|
|
437
200
|
```bash
|
|
438
|
-
|
|
201
|
+
npm test # syntax + real temp-dir install test + structure validation
|
|
202
|
+
npm run validate:all # npm test + AgentShield probe + npm pack dry-run
|
|
439
203
|
```
|
|
440
204
|
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
## Validate Before Release
|
|
444
|
-
|
|
445
|
-
```bash
|
|
446
|
-
npm test # syntax + install idempotency + structure validation
|
|
447
|
-
npm run validate:all # npm test + AgentShield probe + package dry-run
|
|
448
|
-
```
|
|
205
|
+
Publishing checklist: [.vibekit/init/PUSH_TO_GITHUB.md](.vibekit/init/PUSH_TO_GITHUB.md). Deeper docs: [.vibekit/docs/](.vibekit/docs/).
|
|
449
206
|
|
|
450
|
-
|
|
207
|
+
<details>
|
|
208
|
+
<summary><strong>Troubleshooting</strong></summary>
|
|
451
209
|
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
-
|
|
460
|
-
- Make agent-surface security review part of the normal workflow.
|
|
210
|
+
| Symptom | Fix |
|
|
211
|
+
| --- | --- |
|
|
212
|
+
| Agent ignores the init flow | Re-run the installer, or copy [.vibekit/init/CLAUDE-template.md](.vibekit/init/CLAUDE-template.md) to `CLAUDE.md`. |
|
|
213
|
+
| Agent re-asks to init every session | Run init and approve; confirm `meta.template_status: initialized` in `backbone.yml`. |
|
|
214
|
+
| Wrong stack detected | Remove stale lockfiles, or edit `backbone.yml` directly. |
|
|
215
|
+
| Agent touches a path it shouldn't | Add the path to `policy.protected_paths` in `backbone.yml` (globs supported). |
|
|
216
|
+
| AgentShield probe warning | Install Python 3, or ignore — it is a warning, not a failure. |
|
|
217
|
+
| Scripts missing after install | Re-run install with `--force`, or copy `.vibekit/scripts/` manually. |
|
|
461
218
|
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
| Symptom | Likely cause | Fix |
|
|
465
|
-
| --- | --- | --- |
|
|
466
|
-
| Agent ignores the init flow | `CLAUDE.md` missing or its managed block was removed. | Re-run the installer, or copy [CLAUDE-template.md](CLAUDE-template.md) to `CLAUDE.md`. |
|
|
467
|
-
| Agent re-asks to init every session | `meta.template_status` is still `uninitialized`. | Run init, approve the diff, confirm `template_status` is `initialized` and `initialized_at` is set. |
|
|
468
|
-
| Wrong stack detected | Stale lockfile from an old language, or detection patterns out of date. | Delete the stale files, or extend detection in [backbone.yml](backbone.yml). |
|
|
469
|
-
| Agent touches a path it shouldn't | Path is not listed in `policy.protected_paths`. | Add it (globs supported). |
|
|
470
|
-
| Existing `CLAUDE.md` was overwritten | Merge guardrail was bypassed. | Restore from git. Re-run install — the kit only appends managed blocks. |
|
|
471
|
-
| Validation warns about AgentShield probe | Python or the probe script is unavailable. | Install Python 3, or skip — it is a warning, not a failure. |
|
|
472
|
-
| `node .vbkit-scripts/...` not found after install | Installer skipped existing files. | Re-run with `--force`, or copy `.vbkit-scripts/` manually. |
|
|
219
|
+
</details>
|
|
473
220
|
|
|
474
221
|
## Contributing
|
|
475
222
|
|
|
476
|
-
Issues and PRs welcome at [`giang6283623/minimal-vibe-coding-kit`](https://github.com/giang6283623/minimal-vibe-coding-kit).
|
|
477
|
-
|
|
478
|
-
When editing the kit:
|
|
479
|
-
|
|
480
|
-
- Mirror changes between `.claude/`, `.cursor/`, and `.agents/` so all three tools stay aligned.
|
|
481
|
-
- Keep templates project-neutral. No company names, no hardcoded ports.
|
|
482
|
-
- Document each new command/skill with a one-line purpose and one example.
|
|
483
|
-
- Run `npm run validate:all` before opening a PR.
|
|
484
|
-
- Review [SECURITY.md](SECURITY.md), [CONTRIBUTING.md](CONTRIBUTING.md), and [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md).
|
|
223
|
+
Issues and PRs welcome at [`giang6283623/minimal-vibe-coding-kit`](https://github.com/giang6283623/minimal-vibe-coding-kit). Before a PR: mirror skill changes across `.claude/`, `.cursor/`, `.agents/`, keep templates project-neutral, and run `npm run validate:all`. See [CONTRIBUTING.md](CONTRIBUTING.md), [SECURITY.md](SECURITY.md), [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md).
|
|
485
224
|
|
|
486
225
|
**Created by:** [GiangBV](https://www.linkedin.com/in/buivangiang1992), [AuPMH](https://www.linkedin.com/in/pham-au-2a1bb1162)
|
|
487
226
|
**Powered by:** Caffeine, Determination, AI Collaboration, and Weekend Coding Sessions.
|