dasa-sradha-kit 5.0.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/.agent/.shared/infinite-memory.md +19 -0
- package/.agent/.shared/max-power-core.md +27 -0
- package/.agent/ARCHITECTURE.md +104 -0
- package/.agent/agents/dasa-dharma.md +21 -0
- package/.agent/agents/dasa-dwipa.md +21 -0
- package/.agent/agents/dasa-indra.md +21 -0
- package/.agent/agents/dasa-kala.md +21 -0
- package/.agent/agents/dasa-mpu.md +21 -0
- package/.agent/agents/dasa-nala.md +21 -0
- package/.agent/agents/dasa-patih.md +21 -0
- package/.agent/agents/dasa-rsi.md +25 -0
- package/.agent/agents/dasa-sastra.md +21 -0
- package/.agent/agents/dasa-widya.md +21 -0
- package/.agent/rules/GEMINI.md +183 -0
- package/.agent/scripts/api_validator.py +70 -0
- package/.agent/scripts/arch_mapper.py +101 -0
- package/.agent/scripts/compact_memory.py +68 -0
- package/.agent/scripts/complexity_scorer.py +82 -0
- package/.agent/scripts/context_mapper.py +91 -0
- package/.agent/scripts/design_engine.py +108 -0
- package/.agent/scripts/design_memory_sync.py +87 -0
- package/.agent/scripts/lint_fixer.py +79 -0
- package/.agent/scripts/qa_gate.py +84 -0
- package/.agent/scripts/security_scan.py +82 -0
- package/.agent/scripts/semantic-scan.py +56 -0
- package/.agent/scripts/skill_search.py +91 -0
- package/.agent/scripts/status_parser.py +78 -0
- package/.agent/scripts/test_runner.py +98 -0
- package/.agent/scripts/validate_env.py +71 -0
- package/.agent/scripts/web_scraper.py +86 -0
- package/.agent/scripts/workspace-mapper.py +58 -0
- package/.agent/skills/.gitkeep +0 -0
- package/.agent/workflows/dasa-api.md +42 -0
- package/.agent/workflows/dasa-assimilate.md +44 -0
- package/.agent/workflows/dasa-commit.md +46 -0
- package/.agent/workflows/dasa-docs.md +46 -0
- package/.agent/workflows/dasa-e2e.md +41 -0
- package/.agent/workflows/dasa-feature.md +46 -0
- package/.agent/workflows/dasa-fix.md +37 -0
- package/.agent/workflows/dasa-init.md +29 -0
- package/.agent/workflows/dasa-plan.md +56 -0
- package/.agent/workflows/dasa-pr.md +47 -0
- package/.agent/workflows/dasa-refactor.md +44 -0
- package/.agent/workflows/dasa-seed.md +44 -0
- package/.agent/workflows/dasa-start-work.md +51 -0
- package/.agent/workflows/dasa-status.md +58 -0
- package/.agent/workflows/dasa-sync.md +39 -0
- package/.agent/workflows/dasa-uninstall.md +30 -0
- package/CHANGELOG.md +94 -0
- package/LICENSE +21 -0
- package/README.md +135 -0
- package/bin/cli.js +218 -0
- package/bin/dasa-cli.js +100 -0
- package/package.json +37 -0
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Show the current status of all plans and work sessions. Example: /dasa-status
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
description: Show the current status of all plans and work sessions. Example: /dasa-status
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# /dasa-status - Project Management
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
# USER REQUEST:
|
|
13
|
+
$ARGUMENTS
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## 🔴 CRITICAL RULES (Dasa Kala)
|
|
19
|
+
|
|
20
|
+
1. **Guard Check:** Look for `dasa.config.toon` in the root folder. If missing, tell the user to run `/dasa-init` and **stop immediately**.
|
|
21
|
+
2. **Read-Only:** Do NOT write any code, generate files, or modify artifacts. You are strictly observing and reporting status.
|
|
22
|
+
3. **Identity:** Act as **Dasa Kala (The Project Manager)** for the Dasa Sradha system.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## 🛠️ Status Execution
|
|
27
|
+
|
|
28
|
+
1. Read the active meta-plan in `.artifacts/implementation_plan.toon` (or `.md`).
|
|
29
|
+
2. Read the surgical checklist in `.artifacts/task.toon` (or `.md`).
|
|
30
|
+
3. Briefly review git status (`git status -s`) to see uncommitted changes.
|
|
31
|
+
4. Synthesize this data into a hyper-concise Markdown report for the user.
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## 📦 Expected Output
|
|
36
|
+
|
|
37
|
+
Present a clean markdown status report containing exactly four sections:
|
|
38
|
+
|
|
39
|
+
### 1. 🟢 Currently Active Task
|
|
40
|
+
A single sentence describing what is being worked on right now.
|
|
41
|
+
|
|
42
|
+
### 2. ✅ Recent Progress
|
|
43
|
+
Bullet points of recently completed steps (based on `task.toon` or actual code changes).
|
|
44
|
+
|
|
45
|
+
### 3. 🎯 Next Steps
|
|
46
|
+
Bullet points of the immediate upcoming tasks in the queue.
|
|
47
|
+
|
|
48
|
+
### 4. 🛑 Blockers / Changes
|
|
49
|
+
Any uncommitted Git changes, failing tests, or missing dependencies holding up progress.
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## 🏁 After Status
|
|
54
|
+
|
|
55
|
+
Finish your report by asking:
|
|
56
|
+
|
|
57
|
+
> **[?] Need to adjust the plan or continue execution?**
|
|
58
|
+
> Run `/dasa-plan "Revise X"` to pivot, or `/dasa-start-work` to keep building.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Automatically compacts today's active tasks and artifacts into a dense memory vault for tomorrow's session. Example: /dasa-sync
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# /dasa-sync
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
# USER REQUEST:
|
|
9
|
+
$ARGUMENTS
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## 🔴 CRITICAL RULES
|
|
15
|
+
|
|
16
|
+
1. **Guard Check:** Look for `dasa.config.toon` in the root folder. If missing, tell the user to run `/dasa-init` and **stop immediately**.
|
|
17
|
+
2. **Declarative Execution:** Follow the instructions below precisely, reporting back to the user upon completion.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 🛠️ Execution
|
|
22
|
+
|
|
23
|
+
- **Step 1: Patih & Sastra Initialization**
|
|
24
|
+
You are now operating as **Dasa Patih** (The Orchestrator) and **Dasa Sastra** (The Writer).
|
|
25
|
+
Your goal is to save the AI's "working memory" so the user can close the IDE, start a brand-new chat tomorrow, and immediately pick up where they left off without losing context.
|
|
26
|
+
|
|
27
|
+
- **Step 2: Read Active State**
|
|
28
|
+
Read `.artifacts/implementation_plan.md` and `.artifacts/task.md`.
|
|
29
|
+
Identify what was accomplished in this current continuous session.
|
|
30
|
+
|
|
31
|
+
- **Step 3: Vault Compaction (TOON Architecture)**
|
|
32
|
+
Use the `write_to_file` tool to create or update `.agent/memory/architecture-state.toon`.
|
|
33
|
+
You must aggressively compress the current state into this file using **Token Optimized Object Notation (TOON)** to save LLM context window space.
|
|
34
|
+
- **CRITICAL TOON RULES:** Do not use conversational markdown, `# headers`, paragraphs, or fluff. Represent the entire daily memory as a dense JSON-like structure.
|
|
35
|
+
- **Include Keys:** `decisions` (array of core architecture choices), `stack_changes` (new deps), and `next_task` (the exact ID to resume tomorrow).
|
|
36
|
+
- **Exclude:** Raw code blocks, minor bug histories, or conversational fluff.
|
|
37
|
+
|
|
38
|
+
- **Step 4: Inform User**
|
|
39
|
+
**STOP**. Tell the user: "Memory Compaction Complete. The `.agent/memory/architecture-state.toon` vault has been updated. You may now safely close this chat session. Tomorrow, simply type `/dasa-start-work` in a new window and I will natively read the vault to instantly regain my memory."
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Remove dasa-sradha-kit from the repository and delete marker file. Example: /dasa-uninstall
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# /dasa-uninstall
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
# USER REQUEST:
|
|
9
|
+
$ARGUMENTS
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## 🔴 CRITICAL RULES
|
|
15
|
+
|
|
16
|
+
1. **Guard Check:** Look for `dasa.config.toon` in the root folder. If missing, tell the user to run `/dasa-init` and **stop immediately**.
|
|
17
|
+
2. **Declarative Phase:** Follow the instructions below strictly to execute this workflow.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 🛠️ Execution
|
|
22
|
+
|
|
23
|
+
- **Step 1: Guard Check**
|
|
24
|
+
Verify that `.dasa-sradha` exists in the repository root.
|
|
25
|
+
If it's missing, **STOP IMMEDIATELY** and tell the user: "This repository is not initialized. Run `/dasa-init` first."
|
|
26
|
+
- **Step 2: Uninstall kit**
|
|
27
|
+
Execute the backend script: `~/.gemini/scripts/dasa-uninstall $ARGUMENTS`
|
|
28
|
+
|
|
29
|
+
> [!NOTE]
|
|
30
|
+
> This will delete `.dasa-sradha` and other project-related files.
|
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to the Dasa Sradha Kit will be documented in this file.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## [5.0.0] - 2026-02-22
|
|
8
|
+
|
|
9
|
+
### 🚀 Major Release: V5 Zero-Dependency Ecosystem
|
|
10
|
+
|
|
11
|
+
#### Added
|
|
12
|
+
- **3 new stack-agnostic workflows**: `/dasa-feature`, `/dasa-api`, `/dasa-refactor` — all dynamically read `dasa.config.toon` instead of hardcoding frameworks.
|
|
13
|
+
- **`qa_gate.py`**: Native Python engineering failures scanner with ~800 patterns assimilated from `engineering-failures-bible` (Memory, Concurrency, Security domains).
|
|
14
|
+
- **`context_mapper.py`**: Zero-dependency AST-based codebase context generator. Replaces the need for `amdb` or external vector DBs.
|
|
15
|
+
- **`skill_search.py`**: Native local skill indexer. Scans `.agent/skills/` and `~/.gemini/antigravity/skills/` using semantic text overlap.
|
|
16
|
+
- **`design_engine.py`**: Strict TOON design system generator assimilating `ui-ux-pro-max-skill` and `design-rules-ai` logic.
|
|
17
|
+
- **`compact_memory.py`**: 5-sector TOON memory compactor (episodic, semantic, procedural, emotional, reflective) imitating `OpenMemory`.
|
|
18
|
+
- **Background persona spawning**: `npx dasa-cli run <persona>` spawns detached Node processes to keep the main chat token-free.
|
|
19
|
+
- **Senior Engineer Constraints (SOLID)**: Methods < 10 lines, Classes < 50 lines, TDD enforcement, Value Objects — injected globally into `GEMINI.md`.
|
|
20
|
+
- **Strict Agile Pipeline**: `/dasa-start-work` now enforces rigid `Mpu (Architect) → Nala (Dev) → Indra (QA)` handoffs. Nala is blocked until Mpu's architecture TOON exists.
|
|
21
|
+
|
|
22
|
+
#### Changed
|
|
23
|
+
- **`ARCHITECTURE.md`**: Completely rewritten for V5. Now documents all 10 agents, 16 workflows, and 17 scripts.
|
|
24
|
+
- **`README.md`**: Completely rewritten for V5. Removed all V3 global-install legacy references.
|
|
25
|
+
- **`HOW_IT_WORKS.md`**: Completely rewritten. Documents the strict Agile pipeline, TOON memory system, and token efficiency strategies.
|
|
26
|
+
- **`CONTRIBUTING.md`**: Updated with V5 templates for adding Personas, Workflows, and Scripts.
|
|
27
|
+
- **`package.json`**: Bumped from `4.0.0` to `5.0.0`.
|
|
28
|
+
- **`infinite-memory.md`**: Updated to teach Personas the 5-sector TOON memory vault instead of legacy markdown files.
|
|
29
|
+
- **`dasa-init.md`**: Updated to use `npx dasa-cli init` instead of the legacy bash wrapper.
|
|
30
|
+
|
|
31
|
+
#### Removed
|
|
32
|
+
- **`dasa-suta` phantom persona**: Removed from `dasa-cli.js` (no corresponding agent file existed).
|
|
33
|
+
- **Empty `.agent/skills/` subdirectories**: Pruned all deprecated V3 skill folders.
|
|
34
|
+
- **Legacy bash `scripts/` references**: All workflows now reference native Python or Node CLI tools.
|
|
35
|
+
|
|
36
|
+
#### Ecosystem Research (Phase 2)
|
|
37
|
+
Knowledge extracted and compressed into `.toon` files for 6 community repositories:
|
|
38
|
+
- `runkids/skillshare` → `.artifacts/knowledge_skillshare.toon`
|
|
39
|
+
- `harikrishna8121999/antigravity-workflows` → `.artifacts/knowledge_ag_workflows.toon`
|
|
40
|
+
- `OleynikAleksandr/antigravity-subagents` → `.artifacts/knowledge_ag_subagents.toon`
|
|
41
|
+
- `salacoste/antigravity-bmad-config` → `.artifacts/knowledge_bmad_config.toon`
|
|
42
|
+
- `mduongvandinh/engineering-failures-bible` → `.artifacts/knowledge_failures_bible.toon`
|
|
43
|
+
- `BETAER-08/amdb` → `.artifacts/knowledge_amdb.toon`
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## [4.0.0] - 2026-02-21
|
|
48
|
+
|
|
49
|
+
### 🏗️ V4: The Local Workspace Pivot
|
|
50
|
+
|
|
51
|
+
#### Added
|
|
52
|
+
- Cross-platform NPM CLI (`npx dasa-sradha-kit init`).
|
|
53
|
+
- Hybrid Workspace Architecture: `.agent/` (read-only mechanics) + `.artifacts/` (read-write state).
|
|
54
|
+
- `dasa.config.toon` workspace configuration format.
|
|
55
|
+
- 11 cross-platform Python scripts replacing all bash logic.
|
|
56
|
+
- `GEMINI.md` global constraints file with P0 priority.
|
|
57
|
+
|
|
58
|
+
#### Changed
|
|
59
|
+
- Migrated from global `~/.gemini/` install to local `.agent/` workspace pattern.
|
|
60
|
+
- Migrated from bash scripts to Python 3 for Windows/macOS/Linux compatibility.
|
|
61
|
+
- Restructured all 13 workflows to declarative markdown format.
|
|
62
|
+
|
|
63
|
+
#### Removed
|
|
64
|
+
- `install.sh` global installer (replaced by NPM CLI).
|
|
65
|
+
- Root `scripts/`, `skills/`, `workflows/` directories (moved to `.agent/`).
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## [3.0.0] - 2026-02-20
|
|
70
|
+
|
|
71
|
+
### Added
|
|
72
|
+
- Native E2E testing via Antigravity `browser_subagent`.
|
|
73
|
+
- Database seeder workflow (`/dasa-seed`).
|
|
74
|
+
- GitHub PR auto-reviewer (`/dasa-pr`).
|
|
75
|
+
- `osgrep` semantic search integration for Dasa Dwipa.
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## [2.0.0] - 2026-02-19
|
|
80
|
+
|
|
81
|
+
### Added
|
|
82
|
+
- Monorepo workspace routing.
|
|
83
|
+
- API documentation workflow (`/dasa-docs`).
|
|
84
|
+
- TOON format adoption for all state files.
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## [1.0.0] - 2026-02-18
|
|
89
|
+
|
|
90
|
+
### Added
|
|
91
|
+
- Initial release with 10 Dasa Personas.
|
|
92
|
+
- 7 core slash commands.
|
|
93
|
+
- `install.sh` global installer.
|
|
94
|
+
- Bahasa Indonesia persona outputs.
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Dasa Sradha Kit Contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
# Dasa Sradha Kit for Antigravity
|
|
2
|
+
|
|
3
|
+
The **Dasa Sradha Kit** is a native, zero-dependency agentic framework designed exclusively for the **Antigravity IDE**. It splits complex software workflows into 10 distinct AI Personas, orchestrating massive full-stack builds without exploding your LLM context window.
|
|
4
|
+
|
|
5
|
+
## Key Features
|
|
6
|
+
|
|
7
|
+
- **10 Persona-Based Orchestration**: Distinct AI agents (Scout, Architect, Builder, etc.) with strict Agile handoffs via the `npx dasa-cli` dashboard.
|
|
8
|
+
- **Zero-Dependency Native Execution**: Uses Antigravity's built-in `browser_subagent` for E2E testing and `run_command` for execution. No Playwright, no heavy NPM packages.
|
|
9
|
+
- **5-Sector TOON Long-Term Memory**: Compresses chat histories into `episodic`, `semantic`, `procedural`, `emotional`, and `reflective` vaults for infinite context without token bloat.
|
|
10
|
+
- **17 Native Python Scripts**: Cross-platform tooling for QA gates, AST-based context mapping, security scanning, and design system generation — all zero-dependency.
|
|
11
|
+
- **Senior Engineer Constraints**: Hard limits enforcing Methods < 10 lines and Classes < 50 lines across all Personas.
|
|
12
|
+
- **Stack-Agnostic Workflows**: Framework detection via `dasa.config.toon` — works with React, Go, Python, Rust, or any stack.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Prerequisites
|
|
17
|
+
|
|
18
|
+
- **Antigravity IDE**: You must be running the Antigravity editor.
|
|
19
|
+
- **Node.js**: Version 18+ (for the CLI).
|
|
20
|
+
- **Python 3**: Version 3.8+ (for the native scripts).
|
|
21
|
+
- **Git**: Required for version control and PR workflows.
|
|
22
|
+
- **osgrep** (Optional): `npm install -g osgrep` for enhanced semantic search.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Getting Started
|
|
27
|
+
|
|
28
|
+
### Option A: NPX (Recommended)
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
npx dasa-sradha-kit init
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### Option B: Global Install
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
npm install -g dasa-sradha-kit
|
|
38
|
+
dasa init
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Option C: Clone & Init
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
git clone https://github.com/TudeOrangBiasa/dasa-sradha-kit.git
|
|
45
|
+
cd dasa-sradha-kit
|
|
46
|
+
npm link
|
|
47
|
+
dasa init
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
This generates your `dasa.config.toon`, builds the `.agent/` mechanics folder, and creates the `.artifacts/` memory vault.
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Architecture Overview
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
<workspace-root>/
|
|
58
|
+
├── .agent/ ← Read-Only Mechanics (installed by dasa-cli)
|
|
59
|
+
│ ├── agents/ ← 10 Dasa Personas
|
|
60
|
+
│ ├── rules/GEMINI.md ← P0 global constraints (SOLID, TDD, Methods < 10)
|
|
61
|
+
│ ├── skills/ ← Modular domain resources (engineering failures, etc.)
|
|
62
|
+
│ ├── workflows/ ← 16 Slash Commands
|
|
63
|
+
│ └── scripts/ ← 17 Python scripts (zero-dependency)
|
|
64
|
+
├── .artifacts/ ← Read-Write Memory (active tasks, TOON vaults)
|
|
65
|
+
├── .design-memory/ ← Long-term UI specs
|
|
66
|
+
├── dasa.config.toon ← Your tech stack configuration
|
|
67
|
+
└── bin/
|
|
68
|
+
├── cli.js ← `dasa` CLI entry point
|
|
69
|
+
└── dasa-cli.js ← `dasa-cli` orchestrator dashboard
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Available Commands
|
|
75
|
+
|
|
76
|
+
| Command | Description |
|
|
77
|
+
|:---|:---|
|
|
78
|
+
| `/dasa-plan` | Break down a feature request into strict phase-gated tasks. |
|
|
79
|
+
| `/dasa-start-work` | Execute the plan via the rigid Agile pipeline: Mpu → Nala → Indra. |
|
|
80
|
+
| `/dasa-feature` | Implement a complete vertical feature (stack-agnostic). |
|
|
81
|
+
| `/dasa-api` | Generate API endpoints (framework-agnostic via `dasa.config.toon`). |
|
|
82
|
+
| `/dasa-refactor` | Safe refactoring with mandatory QA gate. |
|
|
83
|
+
| `/dasa-status` | Display current progress. |
|
|
84
|
+
| `/dasa-commit` | QA gate + atomic Conventional Commit. |
|
|
85
|
+
| `/dasa-sync` | Compress session to 5-sector TOON memory vault. |
|
|
86
|
+
| `/dasa-fix` | Auto-heal from terminal errors. |
|
|
87
|
+
| `/dasa-pr` | Adversarial GitHub PR review via `gh`. |
|
|
88
|
+
| `/dasa-e2e` | Native browser E2E test (records `.webp` videos). |
|
|
89
|
+
| `/dasa-seed` | Generate realistic database fixtures. |
|
|
90
|
+
| `/dasa-docs` | Generate Postman/OpenAPI specs. |
|
|
91
|
+
| `/dasa-assimilate` | Onboard a pre-existing, undocumented codebase. |
|
|
92
|
+
| `/dasa-uninstall` | Remove `.agent/` from the workspace. |
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## The 10 Dasa Personas
|
|
97
|
+
|
|
98
|
+
| Persona | Role |
|
|
99
|
+
|:---|:---|
|
|
100
|
+
| **Dasa Patih** | Orchestrator — routes tasks, compacts memory |
|
|
101
|
+
| **Dasa Mpu** | Master Architect — system design, planning |
|
|
102
|
+
| **Dasa Rsi** | Sage Consultant — code review, SOLID enforcement |
|
|
103
|
+
| **Dasa Nala** | Builder — frontend/backend implementation |
|
|
104
|
+
| **Dasa Sastra** | Writer — documentation, API specs |
|
|
105
|
+
| **Dasa Widya** | Researcher — library analysis, data research |
|
|
106
|
+
| **Dasa Dwipa** | Scout — codebase exploration, skill search |
|
|
107
|
+
| **Dasa Indra** | QA Investigator — testing, `qa_gate.py` enforcement |
|
|
108
|
+
| **Dasa Dharma** | Security Guardian — secret scanning, audits |
|
|
109
|
+
| **Dasa Kala** | Swift Fixer — patches, quick tactical fixes |
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## Extensibility
|
|
114
|
+
|
|
115
|
+
### Community Skills
|
|
116
|
+
Download any Antigravity-compatible skill into `.agent/skills/` and Dasa Dwipa will automatically find and index it:
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
python3 .agent/scripts/skill_search.py "database migration"
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### External Skill Paths
|
|
123
|
+
Add external skill paths to your `dasa.config.toon`:
|
|
124
|
+
```yaml
|
|
125
|
+
external_skills:
|
|
126
|
+
- "/path/to/community-skill"
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## Deep Dives
|
|
132
|
+
|
|
133
|
+
- [HOW_IT_WORKS.md](HOW_IT_WORKS.md) — Complete Architectural Manual
|
|
134
|
+
- [CONTRIBUTING.md](CONTRIBUTING.md) — How to forge new Personas and Workflows
|
|
135
|
+
- [CHANGELOG.md](CHANGELOG.md) — Latest updates
|
package/bin/cli.js
ADDED
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* dasa - The Dasa Sradha Kit CLI
|
|
4
|
+
* Cross-platform: Windows, macOS, Linux
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* dasa init Initialize Dasa Sradha in current workspace
|
|
8
|
+
* dasa install-skills Install awesome-antigravity skills globally
|
|
9
|
+
* dasa --version, -v Show version
|
|
10
|
+
* dasa --help, -h Show help
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
const fs = require("fs");
|
|
14
|
+
const path = require("path");
|
|
15
|
+
const { execSync } = require("child_process");
|
|
16
|
+
|
|
17
|
+
const pkg = require("../package.json");
|
|
18
|
+
const TEMPLATE_DIR = path.join(__dirname, "..", ".agent");
|
|
19
|
+
const GLOBAL_SKILLS_DIR = path.join(
|
|
20
|
+
process.env.HOME || process.env.USERPROFILE,
|
|
21
|
+
".gemini",
|
|
22
|
+
"antigravity",
|
|
23
|
+
"skills"
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
const cmd = process.argv[2];
|
|
27
|
+
|
|
28
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
29
|
+
// Helpers
|
|
30
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
31
|
+
const green = (s) => `\x1b[32m${s}\x1b[0m`;
|
|
32
|
+
const yellow = (s) => `\x1b[33m${s}\x1b[0m`;
|
|
33
|
+
const red = (s) => `\x1b[31m${s}\x1b[0m`;
|
|
34
|
+
const bold = (s) => `\x1b[1m${s}\x1b[0m`;
|
|
35
|
+
|
|
36
|
+
function info(msg) { console.log(`${green("[+]")} ${msg}`); }
|
|
37
|
+
function warn(msg) { console.log(`${yellow("[!]")} ${msg}`); }
|
|
38
|
+
function error(msg) { console.error(`${red("[x]")} ${msg}`); }
|
|
39
|
+
|
|
40
|
+
function printHelp() {
|
|
41
|
+
console.log(`
|
|
42
|
+
${bold("dasa")} — Dasa Sradha Kit v${pkg.version}
|
|
43
|
+
AI orchestration for Antigravity IDE. 10 Personas. Cross-platform.
|
|
44
|
+
|
|
45
|
+
${bold("USAGE")}
|
|
46
|
+
dasa <command> [options]
|
|
47
|
+
|
|
48
|
+
${bold("COMMANDS")}
|
|
49
|
+
init Initialize .agent/ in the current workspace
|
|
50
|
+
install-skills Install awesome-antigravity skills globally
|
|
51
|
+
(into ~/.gemini/antigravity/skills/)
|
|
52
|
+
|
|
53
|
+
${bold("OPTIONS")}
|
|
54
|
+
-v, --version Print version
|
|
55
|
+
-h, --help Print this help
|
|
56
|
+
|
|
57
|
+
${bold("EXAMPLES")}
|
|
58
|
+
cd my-project && dasa init
|
|
59
|
+
dasa install-skills
|
|
60
|
+
`);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
function checkOsgrep() {
|
|
64
|
+
try {
|
|
65
|
+
execSync("osgrep --version", { stdio: "ignore" });
|
|
66
|
+
info("osgrep detected. Semantic search capabilities enabled.");
|
|
67
|
+
} catch {
|
|
68
|
+
warn("osgrep not detected. Install it for semantic search:");
|
|
69
|
+
warn(" npm install -g osgrep");
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
function scaffoldConfig(dest) {
|
|
74
|
+
const configPath = path.join(dest, "dasa.config.toon");
|
|
75
|
+
if (fs.existsSync(configPath)) {
|
|
76
|
+
warn("dasa.config.toon already exists. Skipping config scaffold.");
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
const config = `# Dasa Sradha Kit — Workspace Configuration (TOON Format)
|
|
81
|
+
# ─────────────────────────────────────────────────────────
|
|
82
|
+
# TOON: Token Optimized Object Notation. Dense key-value config.
|
|
83
|
+
# Personas will read this FIRST before any task.
|
|
84
|
+
|
|
85
|
+
project:
|
|
86
|
+
name: "my-project"
|
|
87
|
+
language: "en" # en | id (output language for personas)
|
|
88
|
+
|
|
89
|
+
stack:
|
|
90
|
+
frontend: "" # e.g. next.js | vue | react
|
|
91
|
+
backend: "" # e.g. laravel | nestjs | express
|
|
92
|
+
database: "" # e.g. postgresql | mysql | mongodb
|
|
93
|
+
runtime: "" # e.g. node | python | php
|
|
94
|
+
|
|
95
|
+
workspaces: # Multi-repo / Monorepo mapping
|
|
96
|
+
frontend: "" # e.g. ./frontend
|
|
97
|
+
backend: "" # e.g. ./backend
|
|
98
|
+
|
|
99
|
+
semantic_search:
|
|
100
|
+
engine: "osgrep" # osgrep | none
|
|
101
|
+
enabled: true
|
|
102
|
+
|
|
103
|
+
external_skills: [] # Absolute paths to community skills to activate
|
|
104
|
+
# e.g. - "~/.gemini/antigravity/skills/nextjs-react-expert"
|
|
105
|
+
`;
|
|
106
|
+
fs.writeFileSync(configPath, config, "utf8");
|
|
107
|
+
info(`Created dasa.config.toon`);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
function scaffoldArtifactDirs(dest) {
|
|
111
|
+
const dirs = [".artifacts", ".design-memory"];
|
|
112
|
+
const gitkeep = "# Dasa Sradha — Managed Directory\n";
|
|
113
|
+
|
|
114
|
+
for (const dir of dirs) {
|
|
115
|
+
const dirPath = path.join(dest, dir);
|
|
116
|
+
if (!fs.existsSync(dirPath)) {
|
|
117
|
+
fs.mkdirSync(dirPath, { recursive: true });
|
|
118
|
+
fs.writeFileSync(path.join(dirPath, ".gitkeep"), gitkeep);
|
|
119
|
+
info(`Created ${dir}/`);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
125
|
+
// Commands
|
|
126
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
127
|
+
function runInit() {
|
|
128
|
+
const cwd = process.cwd();
|
|
129
|
+
const destAgent = path.join(cwd, ".agent");
|
|
130
|
+
|
|
131
|
+
console.log(`\n${bold("Dasa Sradha Kit")} v${pkg.version} — Initializing workspace...\n`);
|
|
132
|
+
|
|
133
|
+
// Guard: check if root looks like an actual project
|
|
134
|
+
if (!fs.existsSync(path.join(cwd, "package.json")) &&
|
|
135
|
+
!fs.existsSync(path.join(cwd, ".git")) &&
|
|
136
|
+
!fs.existsSync(path.join(cwd, "go.mod")) &&
|
|
137
|
+
!fs.existsSync(path.join(cwd, "composer.json"))) {
|
|
138
|
+
warn("No recognized project root found (package.json, .git, go.mod, composer.json).");
|
|
139
|
+
warn("Make sure you are running this inside your project directory.");
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
// 1. Copy .agent/ template
|
|
143
|
+
if (fs.existsSync(destAgent)) {
|
|
144
|
+
warn(".agent/ already exists. Merging missing files only...");
|
|
145
|
+
fs.cpSync(TEMPLATE_DIR, destAgent, { recursive: true, force: false, errorOnExist: false });
|
|
146
|
+
} else {
|
|
147
|
+
info("Installing .agent/ (agents, rules, workflows, scripts, skills)...");
|
|
148
|
+
fs.cpSync(TEMPLATE_DIR, destAgent, { recursive: true });
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
// 2. Scaffold workspace directories
|
|
152
|
+
scaffoldArtifactDirs(cwd);
|
|
153
|
+
|
|
154
|
+
// 3. Generate dasa.config.toon
|
|
155
|
+
scaffoldConfig(cwd);
|
|
156
|
+
|
|
157
|
+
// 4. Check osgrep
|
|
158
|
+
checkOsgrep();
|
|
159
|
+
|
|
160
|
+
console.log(`
|
|
161
|
+
${green("✔")} Dasa Sradha initialized successfully!
|
|
162
|
+
|
|
163
|
+
${bold("NEXT STEPS")}
|
|
164
|
+
1. Open ${bold("dasa.config.toon")} and define your tech stack
|
|
165
|
+
2. Open Antigravity IDE in this workspace
|
|
166
|
+
3. Use slash commands: /dasa-plan, /dasa-start-work, /dasa-e2e, etc.
|
|
167
|
+
|
|
168
|
+
${bold("DOCS")} → https://github.com/TudeOrangBiasa/dasa-sradha-kit
|
|
169
|
+
`);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
function runInstallSkills() {
|
|
173
|
+
console.log(`\n${bold("Installing awesome-antigravity skills globally...")}\n`);
|
|
174
|
+
|
|
175
|
+
const repoUrl = "https://github.com/sickn33/antigravity-awesome-skills";
|
|
176
|
+
|
|
177
|
+
if (!fs.existsSync(GLOBAL_SKILLS_DIR)) {
|
|
178
|
+
fs.mkdirSync(GLOBAL_SKILLS_DIR, { recursive: true });
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
const cloneTarget = path.join(GLOBAL_SKILLS_DIR, "_awesome-antigravity");
|
|
182
|
+
|
|
183
|
+
if (fs.existsSync(cloneTarget)) {
|
|
184
|
+
info("Updating existing awesome-antigravity skills...");
|
|
185
|
+
execSync(`git -C "${cloneTarget}" pull --rebase`, { stdio: "inherit" });
|
|
186
|
+
} else {
|
|
187
|
+
info(`Cloning 850+ community skills into ${GLOBAL_SKILLS_DIR}...`);
|
|
188
|
+
execSync(`git clone --depth=1 ${repoUrl} "${cloneTarget}"`, { stdio: "inherit" });
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
info("Done! Community skills are now available globally to all Dasa workspaces.");
|
|
192
|
+
console.log(`\n${bold("PATH")} → ${GLOBAL_SKILLS_DIR}\n`);
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
196
|
+
// Entry point
|
|
197
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
198
|
+
switch (cmd) {
|
|
199
|
+
case "init":
|
|
200
|
+
runInit();
|
|
201
|
+
break;
|
|
202
|
+
case "install-skills":
|
|
203
|
+
runInstallSkills();
|
|
204
|
+
break;
|
|
205
|
+
case "--version":
|
|
206
|
+
case "-v":
|
|
207
|
+
console.log(`dasa-sradha-kit v${pkg.version}`);
|
|
208
|
+
break;
|
|
209
|
+
case "--help":
|
|
210
|
+
case "-h":
|
|
211
|
+
case undefined:
|
|
212
|
+
printHelp();
|
|
213
|
+
break;
|
|
214
|
+
default:
|
|
215
|
+
error(`Unknown command: ${cmd}`);
|
|
216
|
+
printHelp();
|
|
217
|
+
process.exit(1);
|
|
218
|
+
}
|