chore: quantlab-agent 프로젝트 초기 설정
agent_guide 템플릿 기반으로 프로젝트 구조 설정. Gitea(quantlab-agent), Vikunja(project #15) 연동 완료. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
# Phase 1: Zero-Pollution Pipeline Stabilization - Context
|
||||
|
||||
**Gathered:** 2026-03-30
|
||||
**Status:** Ready for planning
|
||||
**Source:** PRD Express Path (implementation_plan.md)
|
||||
|
||||
<domain>
|
||||
## Phase Boundary
|
||||
Fix the Master-Satellite synchronization pipeline to natively extract GSD skills, UI updates, and Python dependencies. This ensures that a zero-click `bootstrap.bat/.sh` works flawlessly across new workspaces without violating the Zero-Pollution architecture.
|
||||
</domain>
|
||||
|
||||
<decisions>
|
||||
## Implementation Decisions
|
||||
|
||||
### Zero-Click Python Dependencies
|
||||
- Modify `bootstrap.bat` and `bootstrap.sh` to auto-detect and pip-install Python dependencies for MCP tools (`browser_use`, `claude-mem`, `mini-swe`).
|
||||
|
||||
### Master Sync Pipeline GSD Extraction
|
||||
- Modify `sync_vendors.bat` and `sync_vendors.sh` to execute `npm update get-shit-done-cc uipro-cli`, `npx uipro update`, and `npx get-shit-done-cc --antigravity --local` inside `.agent/env`.
|
||||
- Ensure output folders `.agent/get-shit-done/` and `.agent/skills/gsd-*/` are `git add`ed.
|
||||
|
||||
### Gitignore Rules for extracted skills
|
||||
- Modify `.agent/scripts/extract_skills.js` to whitelist `!gsd-*/` in the generated `.gitignore` so Phase planning and GSD execution tools successfully persist to git.
|
||||
|
||||
### the agent's Discretion
|
||||
- The method of Python virtual environment detection vs global python is left to the agent, though leveraging `AGENT_PYTHON_PATH` if specified is preferred.
|
||||
</decisions>
|
||||
|
||||
<canonical_refs>
|
||||
## Canonical References
|
||||
|
||||
**Downstream agents MUST read these before planning or implementing.**
|
||||
|
||||
### Zero Pollution Scripts
|
||||
- `bootstrap.bat`
|
||||
- `bootstrap.sh`
|
||||
- `.agent/scripts/sync_vendors.bat`
|
||||
- `.agent/scripts/sync_vendors.sh`
|
||||
- `.agent/scripts/extract_skills.js`
|
||||
|
||||
</canonical_refs>
|
||||
|
||||
<specifics>
|
||||
## Specific Ideas
|
||||
- The `npx get-shit-done-cc --antigravity --local` command must be run relative to the project root or precisely routed, otherwise GSD commands won't appear sequentially.
|
||||
|
||||
</specifics>
|
||||
|
||||
<deferred>
|
||||
## Deferred Ideas
|
||||
None — PRD covers phase scope.
|
||||
</deferred>
|
||||
|
||||
---
|
||||
|
||||
*Phase: 01-zero-pollution-pipeline-stabilization*
|
||||
*Context gathered: 2026-03-30 via PRD Express Path*
|
||||
@@ -0,0 +1,143 @@
|
||||
---
|
||||
wave: 1
|
||||
depends_on: []
|
||||
files_modified:
|
||||
- ".agent/scripts/sync_vendors.bat"
|
||||
- ".agent/scripts/sync_vendors.sh"
|
||||
- ".agent/scripts/extract_skills.js"
|
||||
- "bootstrap.bat"
|
||||
- "bootstrap.sh"
|
||||
autonomous: true
|
||||
---
|
||||
|
||||
# Phase 1: Zero-Pollution Pipeline Stabilization
|
||||
|
||||
## Objective
|
||||
Fix the Master-Satellite synchronization pipeline to natively extract GSD skills, UI data, and Python MCP dependencies so that satellite repositories bootstrap via zero-click.
|
||||
|
||||
## Verification Criteria
|
||||
- [ ] Running `bootstrap.bat` attempts to install Python `requirements.txt` targets (`browser_use`, `claude-mem`).
|
||||
- [ ] Running `sync_vendors.bat` successfully runs `get-shit-done-cc` generator and Git tracks `.agent/skills/gsd-*/` and `.agent/get-shit-done/`.
|
||||
- [ ] `extract_skills.js` generated `.gitignore` whitelists `!gsd-*/`.
|
||||
|
||||
## must_haves
|
||||
- [ ] `sync_vendors.bat` and `sync_vendors.sh` must execute `npm install`, `npx uipro update` and `npx get-shit-done-cc --antigravity --local`.
|
||||
- [ ] `bootstrap.bat` and `bootstrap.sh` must execute `pip install -r requirements.txt` for Python components if Python env exists.
|
||||
- [ ] GSD execution binaries and folders must be tracked via `git add .agent/get-shit-done/`.
|
||||
|
||||
---
|
||||
|
||||
<task>
|
||||
<read_first>
|
||||
- .agent/scripts/sync_vendors.bat
|
||||
- .agent/scripts/sync_vendors.sh
|
||||
</read_first>
|
||||
<action>
|
||||
Add the local GSD extraction and uipro updating mechanism directly inside `sync_vendors.bat` and `sync_vendors.sh`.
|
||||
For the bash script (`sync_vendors.sh`), under step `[2/5] 패키지 업데이트 및 GSD, UI-UX-PRO-MAX 동기화...`:
|
||||
Add:
|
||||
```bash
|
||||
cd .agent/env
|
||||
npm install
|
||||
npm update get-shit-done-cc uipro-cli
|
||||
npx uipro update
|
||||
npx get-shit-done-cc --antigravity --local
|
||||
cd ../..
|
||||
```
|
||||
For the batch script (`sync_vendors.bat`), under a new step for package updates:
|
||||
Add:
|
||||
```bat
|
||||
cd .agent\env
|
||||
call npm install
|
||||
call npm update get-shit-done-cc uipro-cli
|
||||
call npx uipro update
|
||||
call npx get-shit-done-cc --antigravity --local
|
||||
cd ..\..
|
||||
```
|
||||
Also, change the git commit logic to track GSD:
|
||||
Change `git add .agent/vendor/ .agent/skills/ .gitmodules` to `git add .agent/vendor/ .agent/skills/ .agent/get-shit-done/ .gitmodules`
|
||||
</action>
|
||||
<acceptance_criteria>
|
||||
`grep "npx get-shit-done-cc --antigravity --local" .agent/scripts/sync_vendors.bat` exits 0.
|
||||
`grep "git add" .agent/scripts/sync_vendors.bat | grep ".agent/get-shit-done/"` exits 0.
|
||||
`grep "npx get-shit-done-cc --antigravity --local" .agent/scripts/sync_vendors.sh` exits 0.
|
||||
`grep "git add" .agent/scripts/sync_vendors.sh | grep ".agent/get-shit-done/"` exits 0.
|
||||
</acceptance_criteria>
|
||||
</task>
|
||||
|
||||
<task>
|
||||
<read_first>
|
||||
- .agent/scripts/extract_skills.js
|
||||
</read_first>
|
||||
<action>
|
||||
Modify `extract_skills.js` to whitelist `gsd-*/` skill folders in the generated `.gitignore`.
|
||||
Find `const gitignoreContent = [` and add `'!gsd-*/',` below `'!mini-swe/',`.
|
||||
</action>
|
||||
<acceptance_criteria>
|
||||
`grep "!gsd-\*/" .agent/scripts/extract_skills.js` exits 0.
|
||||
</acceptance_criteria>
|
||||
</task>
|
||||
|
||||
<task>
|
||||
<read_first>
|
||||
- bootstrap.bat
|
||||
</read_first>
|
||||
<action>
|
||||
Add Python MCP auto-setup logic to `bootstrap.bat` right after the node dependencies step.
|
||||
Add:
|
||||
```bat
|
||||
echo [4/5] Checking and Installing Python MCP Dependencies...
|
||||
if defined AGENT_PYTHON_PATH (
|
||||
echo -^> Using AGENT_PYTHON_PATH: %AGENT_PYTHON_PATH%
|
||||
if exist ".agent\vendor\browser_use\requirements.txt" (
|
||||
"%AGENT_PYTHON_PATH%" -m pip install -r ".agent\vendor\browser_use\requirements.txt"
|
||||
)
|
||||
if exist ".agent\services\claude-mem\requirements.txt" (
|
||||
"%AGENT_PYTHON_PATH%" -m pip install -r ".agent\services\claude-mem\requirements.txt"
|
||||
)
|
||||
if exist ".agent\services\mini-swe\requirements.txt" (
|
||||
"%AGENT_PYTHON_PATH%" -m pip install -r ".agent\services\mini-swe\requirements.txt"
|
||||
)
|
||||
) else (
|
||||
echo -^> Warning: AGENT_PYTHON_PATH is not defined. Skipping Python dependencies installation.
|
||||
)
|
||||
```
|
||||
Update the final step text `[4/4]` to `[5/5]` appropriately.
|
||||
</action>
|
||||
<acceptance_criteria>
|
||||
`grep "AGENT_PYTHON_PATH" bootstrap.bat` exits 0.
|
||||
`grep "pip install -r" bootstrap.bat` exits 0.
|
||||
</acceptance_criteria>
|
||||
</task>
|
||||
|
||||
<task>
|
||||
<read_first>
|
||||
- bootstrap.sh
|
||||
</read_first>
|
||||
<action>
|
||||
Add Python MCP auto-setup logic to `bootstrap.sh` right after the node dependencies step.
|
||||
Add:
|
||||
```bash
|
||||
echo "[4/5] Checking and Installing Python MCP Dependencies..."
|
||||
if [ -n "$AGENT_PYTHON_PATH" ]; then
|
||||
echo " -> Using AGENT_PYTHON_PATH: $AGENT_PYTHON_PATH"
|
||||
if [ -f ".agent/vendor/browser_use/requirements.txt" ]; then
|
||||
"$AGENT_PYTHON_PATH" -m pip install -r ".agent/vendor/browser_use/requirements.txt"
|
||||
fi
|
||||
if [ -f ".agent/services/claude-mem/requirements.txt" ]; then
|
||||
"$AGENT_PYTHON_PATH" -m pip install -r ".agent/services/claude-mem/requirements.txt"
|
||||
fi
|
||||
if [ -f ".agent/services/mini-swe/requirements.txt" ]; then
|
||||
"$AGENT_PYTHON_PATH" -m pip install -r ".agent/services/mini-swe/requirements.txt"
|
||||
fi
|
||||
else
|
||||
echo " -> Warning: AGENT_PYTHON_PATH is not defined. Skipping Python dependencies installation."
|
||||
fi
|
||||
```
|
||||
Update the final step text `[4/4]` to `[5/5]` appropriately.
|
||||
</action>
|
||||
<acceptance_criteria>
|
||||
`grep "AGENT_PYTHON_PATH" bootstrap.sh` exits 0.
|
||||
`grep "pip install -r" bootstrap.sh` exits 0.
|
||||
</acceptance_criteria>
|
||||
</task>
|
||||
Reference in New Issue
Block a user