gemstack-ai 1.0.1

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.
Files changed (137) hide show
  1. package/.agents/rules/01-gemstack-core.md +51 -0
  2. package/.agents/rules/02-gemstack-constitution.md +44 -0
  3. package/.agents/rules/03-gemstack-security.md +49 -0
  4. package/.agents/rules/04-gemstack-infrastructure.md +28 -0
  5. package/.agents/skills/gemstack-cso/SKILL.md +50 -0
  6. package/.agents/skills/gemstack-dashboard/SKILL.md +31 -0
  7. package/.agents/skills/gemstack-guard/SKILL.md +19 -0
  8. package/.agents/skills/gemstack-handoff/SKILL.md +21 -0
  9. package/.agents/skills/gemstack-heal/SKILL.md +19 -0
  10. package/.agents/skills/gemstack-investigate/SKILL.md +25 -0
  11. package/.agents/skills/gemstack-learn/SKILL.md +18 -0
  12. package/.agents/skills/gemstack-office-hours/SKILL.md +18 -0
  13. package/.agents/skills/gemstack-plan/SKILL.md +20 -0
  14. package/.agents/skills/gemstack-qa/SKILL.md +17 -0
  15. package/.agents/skills/gemstack-qa-visual/SKILL.md +17 -0
  16. package/.agents/skills/gemstack-resume/SKILL.md +18 -0
  17. package/.agents/skills/gemstack-review/SKILL.md +18 -0
  18. package/.agents/skills/gemstack-sandbox/SKILL.md +19 -0
  19. package/.agents/skills/gemstack-ship/SKILL.md +19 -0
  20. package/.agents/skills/gemstack-spec/SKILL.md +24 -0
  21. package/.agents/skills/gemstack-swarm/SKILL.md +18 -0
  22. package/.agents/skills/gemstack-tasks/SKILL.md +18 -0
  23. package/.gemstack/learnings.md +8 -0
  24. package/.gemstack/state.json +11 -0
  25. package/.gitattributes +19 -0
  26. package/.github/workflows/main-ci.yml +32 -0
  27. package/.github/workflows/pr-ci.yml +31 -0
  28. package/.github/workflows/publish.yml +52 -0
  29. package/.github/workflows/release-readiness.yml +43 -0
  30. package/CHANGELOG.md +35 -0
  31. package/CODE_OF_CONDUCT.md +49 -0
  32. package/CONTRIBUTING.md +62 -0
  33. package/LICENSE +21 -0
  34. package/MANUAL.md +99 -0
  35. package/README.md +130 -0
  36. package/RELEASE_NOTES.md +149 -0
  37. package/bin/gemstack +31 -0
  38. package/bin/gemstack-doctor +16 -0
  39. package/bin/gemstack-doctor.ps1 +38 -0
  40. package/bin/gemstack.ps1 +49 -0
  41. package/docs/antigravity.md +6 -0
  42. package/docs/handoff.md +9 -0
  43. package/docs/qa/latest-qa.md +25 -0
  44. package/docs/qa-browser.md +7 -0
  45. package/docs/quickstart.md +21 -0
  46. package/docs/release.md +29 -0
  47. package/docs/reviews/latest-review.md +24 -0
  48. package/docs/security/latest-security-audit.md +35 -0
  49. package/docs/security.md +17 -0
  50. package/docs/skills.md +17 -0
  51. package/docs/spec-driven-development.md +10 -0
  52. package/gemstack-ai-1.0.1.tgz +0 -0
  53. package/handoff.md +45 -0
  54. package/handoff_archive.md +61 -0
  55. package/package.json +25 -0
  56. package/scripts/ci/check-frontmatter.js +54 -0
  57. package/scripts/ci/check-mojibake.js +44 -0
  58. package/scripts/ci/check-package-contents.js +32 -0
  59. package/scripts/ci/check-template-clean.js +46 -0
  60. package/scripts/ci/smoke-cli.js +30 -0
  61. package/specs/004-release-automation/plan.md +52 -0
  62. package/specs/004-release-automation/spec.md +49 -0
  63. package/specs/004-release-automation/tasks.md +25 -0
  64. package/specs/005-the-wow-update/plan.md +29 -0
  65. package/specs/005-the-wow-update/spec.md +32 -0
  66. package/specs/005-the-wow-update/tasks.md +16 -0
  67. package/specs/README.md +12 -0
  68. package/specs/current/plan.md +83 -0
  69. package/specs/current/spec.md +57 -0
  70. package/specs/current/tasks.md +98 -0
  71. package/specs/templates/plan.md +38 -0
  72. package/specs/templates/spec.md +35 -0
  73. package/specs/templates/tasks.md +21 -0
  74. package/specs/v0.2-cli-distribution/plan.md +112 -0
  75. package/specs/v0.2-cli-distribution/spec.md +27 -0
  76. package/specs/v0.2-cli-distribution/tasks.md +115 -0
  77. package/specs/v0.3-ci-cd/plan.md +83 -0
  78. package/specs/v0.3-ci-cd/spec.md +57 -0
  79. package/specs/v0.3-ci-cd/tasks.md +98 -0
  80. package/src/cli.js +64 -0
  81. package/src/commands/doctor.js +50 -0
  82. package/src/commands/hooks.js +67 -0
  83. package/src/commands/init.js +90 -0
  84. package/src/commands/install.js +72 -0
  85. package/src/commands/list.js +20 -0
  86. package/src/commands/show.js +18 -0
  87. package/src/commands/update.js +88 -0
  88. package/src/lib/backup.js +29 -0
  89. package/src/lib/filesystem-safe.js +22 -0
  90. package/src/lib/gitignore.js +19 -0
  91. package/src/lib/logger.js +6 -0
  92. package/src/lib/manifest.js +25 -0
  93. package/src/lib/parser.js +27 -0
  94. package/src/mcp-server.js +101 -0
  95. package/template/.agents/rules/01-gemstack-core.md +51 -0
  96. package/template/.agents/rules/02-gemstack-constitution.md +44 -0
  97. package/template/.agents/rules/03-gemstack-security.md +49 -0
  98. package/template/.agents/rules/04-gemstack-infrastructure.md +28 -0
  99. package/template/.agents/skills/gemstack-cso/SKILL.md +50 -0
  100. package/template/.agents/skills/gemstack-dashboard/SKILL.md +31 -0
  101. package/template/.agents/skills/gemstack-guard/SKILL.md +19 -0
  102. package/template/.agents/skills/gemstack-handoff/SKILL.md +21 -0
  103. package/template/.agents/skills/gemstack-heal/SKILL.md +19 -0
  104. package/template/.agents/skills/gemstack-investigate/SKILL.md +25 -0
  105. package/template/.agents/skills/gemstack-learn/SKILL.md +18 -0
  106. package/template/.agents/skills/gemstack-office-hours/SKILL.md +18 -0
  107. package/template/.agents/skills/gemstack-plan/SKILL.md +20 -0
  108. package/template/.agents/skills/gemstack-qa/SKILL.md +17 -0
  109. package/template/.agents/skills/gemstack-qa-visual/SKILL.md +17 -0
  110. package/template/.agents/skills/gemstack-resume/SKILL.md +18 -0
  111. package/template/.agents/skills/gemstack-review/SKILL.md +18 -0
  112. package/template/.agents/skills/gemstack-sandbox/SKILL.md +19 -0
  113. package/template/.agents/skills/gemstack-ship/SKILL.md +19 -0
  114. package/template/.agents/skills/gemstack-spec/SKILL.md +24 -0
  115. package/template/.agents/skills/gemstack-swarm/SKILL.md +18 -0
  116. package/template/.agents/skills/gemstack-tasks/SKILL.md +18 -0
  117. package/template/.gemstack/learnings.md +3 -0
  118. package/template/.gemstack/state.json +4 -0
  119. package/template/docs/antigravity.md +6 -0
  120. package/template/docs/handoff.md +9 -0
  121. package/template/docs/qa/latest-qa.md +25 -0
  122. package/template/docs/qa-browser.md +7 -0
  123. package/template/docs/quickstart.md +21 -0
  124. package/template/docs/release.md +10 -0
  125. package/template/docs/reviews/latest-review.md +19 -0
  126. package/template/docs/security/latest-security-audit.md +37 -0
  127. package/template/docs/security.md +17 -0
  128. package/template/docs/skills.md +17 -0
  129. package/template/docs/spec-driven-development.md +10 -0
  130. package/template/handoff.md +11 -0
  131. package/template/handoff_archive.md +3 -0
  132. package/template/specs/current/plan.md +5 -0
  133. package/template/specs/current/spec.md +7 -0
  134. package/template/specs/current/tasks.md +3 -0
  135. package/template/specs/templates/plan.md +38 -0
  136. package/template/specs/templates/spec.md +35 -0
  137. package/template/specs/templates/tasks.md +21 -0
@@ -0,0 +1,149 @@
1
+ # Gemstack Release Notes
2
+
3
+ # Gemstack v0.3.0
4
+
5
+ ## Highlights
6
+ - GitHub Actions CI
7
+ - PR CI on Ubuntu with Node 18/20
8
+ - Main CI cross-platform matrix on Ubuntu, Windows, macOS with Node 18/20
9
+ - Manual release-readiness workflow
10
+ - Zero-dependency CI scripts under scripts/ci/
11
+ - Frontmatter validation
12
+ - Template cleanliness validation
13
+ - Mojibake detection
14
+ - Package content validation
15
+ - CLI smoke tests
16
+ - SecureDocs smoke tests
17
+ - Artifact generation for npm tarball
18
+ - No npm publish automation
19
+
20
+ ## Validation
21
+ - `npm test`: PASS
22
+ - `npm run ci:all`: PASS
23
+ - `npm run ci:demo`: PASS
24
+ - `npm run pack:dry`: PASS
25
+ - `main-ci` result: SUCCESS (expected)
26
+ - `release-readiness` result: SUCCESS (expected)
27
+ - artifact generated: `gemstack-npm-tarball`
28
+
29
+ ## Safety
30
+ - no npm publish
31
+ - no automatic GitHub Release
32
+ - no automatic tag creation by workflow
33
+ - no secrets printed in logs
34
+ - package contents checked
35
+ - template cleanliness checked
36
+
37
+ ## Known limitations
38
+ - npm publish still manual/future
39
+ - GitHub Release still manual/future
40
+ - CI scripts are custom zero-deps, not full linters
41
+ - release artifact downloads from GitHub UI may be zipped by GitHub
42
+
43
+ ## Next
44
+ - v0.4 or future: npm publish planning
45
+ - GitHub Release automation planning
46
+ - better update diff UX
47
+ - deeper symlink/path tests
48
+ - optional browser QA automation
49
+
50
+ ---
51
+
52
+ # Gemstack v0.2.0
53
+
54
+ ## Highlights
55
+ - **Zero-dependency Node CLI**: `gemstack init` and `gemstack update` for easy local-first scaffolding.
56
+ - **Installable Scaffold**: Separation of codebase in `src/` and cleanly replicable agents/skills in `template/`.
57
+ - **Manifest & Safety**: Idempotent installation managed via `.gemstack/manifest.json` ensuring no overwritten custom files.
58
+ - **Backups System**: Mandatory automatic rollback copy placed in `.gemstack/backups/<timestamp>/` when force updating Gemstack-owned files.
59
+ - **Cryptography Checksums**: Used `crypto` module (SHA-256) to ensure template vs user-drift.
60
+ - **Path Traversal Guard**: Deep node.js native hardening mapping absolute resolution strings `path.relative()` blocking malicious escalations.
61
+ - **Node:Test**: Comprehensive local `node:test` suite for the `cli.js` installer without needing Jest or third party supply-chain vectors.
62
+ - **Tested Packaging**: Verified local compatibility via `npm link` and `npm pack`.
63
+
64
+ ## Safety
65
+ - No destructive overwrite by default.
66
+ - No `stdin` blocking prompts in `v0.2.0` (fail-fast with `--yes` suggestion).
67
+ - No `npm publish` executed yet.
68
+ - Backups execute silently before replacement (no leaking secrets to stdout).
69
+ - `handoff.md` and user files are strictly skipped.
70
+
71
+ ## Validation
72
+ - `npm test` 100% passes native tests.
73
+ - `npm run pack:dry` generated correct package structure strictly ignoring temporary dumps.
74
+ - `npm link` tested efficiently.
75
+ - `npm pack` (tarball) fully tested inside isolated dummy-project folder via `npx gemstack init --dry-run`.
76
+
77
+ ## Known limitations
78
+ - Not published to npm yet.
79
+ - No GitHub Actions yet.
80
+ - Update conflict UX can be improved to feature rich diffs.
81
+ - Symlink hardening may need more tests in v0.3.
82
+ - Browser QA still manual/documented.
83
+
84
+ ---
85
+
86
+ # Gemstack v0.1.0
87
+ - Antigravity-native `.agents/rules` and `.agents/skills` structure
88
+ - Spec-Driven Development workflow
89
+ - Handoff memory system
90
+ - Security/CSO checklist
91
+ - SecureDocs demo app
92
+ - Anti-IDOR smoke tests
93
+ - PowerShell and Unix/Git Bash CLI helpers
94
+
95
+ ## Included Skills
96
+ - gemstack-handoff
97
+ - gemstack-resume
98
+ - gemstack-office-hours
99
+ - gemstack-spec
100
+ - gemstack-plan
101
+ - gemstack-tasks
102
+ - gemstack-review
103
+ - gemstack-investigate
104
+ - gemstack-qa
105
+ - gemstack-ship
106
+ - gemstack-cso
107
+ - gemstack-learn
108
+ - gemstack-guard
109
+
110
+ ## Demo
111
+ SecureDocs is included in `demo-app/` to validate the framework. Features:
112
+ - Express + SQLite + Vanilla JS
113
+ - CRUD de documentos
114
+ - `X-Mock-User-Id` como mock auth
115
+ - smoke tests anti-IDOR automáticos
116
+ - `npm run smoke`
117
+
118
+ ## How to try
119
+ **PowerShell:**
120
+ ```powershell
121
+ .\bin\gemstack-doctor.ps1
122
+ .\bin\gemstack.ps1 list
123
+ cd demo-app
124
+ npm install
125
+ npm run smoke
126
+ ```
127
+
128
+ **Unix/Git Bash:**
129
+ ```bash
130
+ ./bin/gemstack-doctor
131
+ ./bin/gemstack list
132
+ cd demo-app
133
+ npm install
134
+ npm run smoke
135
+ ```
136
+
137
+ ## Known limitations
138
+ - No npm package yet
139
+ - Mock auth only in demo
140
+ - No full automated routing tests yet
141
+ - Browser QA is documented but not fully automated
142
+ - No GitHub Actions yet
143
+
144
+ ## Next
145
+ - v0.2 specs
146
+ - installer/package distribution
147
+ - GitHub Actions
148
+ - more robust QA/browser automation
149
+ - richer security checks
package/bin/gemstack ADDED
@@ -0,0 +1,31 @@
1
+ #!/usr/bin/env bash
2
+ # Gemstack CLI
3
+
4
+ COMMAND=$1
5
+
6
+ case $COMMAND in
7
+ init)
8
+ echo "🚀 Iniciando Gemstack v0.1..."
9
+ mkdir -p .agents/rules .agents/skills .gemstack specs/current specs/templates docs bin
10
+ echo "✅ Estructura creada."
11
+ ;;
12
+ list)
13
+ echo "📂 Skills instalados:"
14
+ ls -1 .agents/skills/
15
+ ;;
16
+ show)
17
+ cat ".agents/skills/$2/SKILL.md" 2>/dev/null || echo "❌ Skill no encontrado"
18
+ ;;
19
+ doctor)
20
+ bash ./bin/gemstack-doctor
21
+ ;;
22
+ handoff)
23
+ cat handoff.md
24
+ ;;
25
+ security-audit)
26
+ echo "Para correr un audit real, invoca /cso en tu chat con Antigravity."
27
+ ;;
28
+ *)
29
+ echo "Uso: gemstack {init|list|show <skill>|doctor|handoff|security-audit}"
30
+ ;;
31
+ esac
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env bash
2
+ # Gemstack Doctor CLI
3
+ echo "🩺 Gemstack Doctor"
4
+ if command -v git >/dev/null 2>&1; then echo "✅ Git instalado"; else echo "❌ Git no instalado"; exit 1; fi
5
+ if [ -d ".git" ]; then echo "✅ Repositorio Git detectado"; else echo "❌ No es un repositorio Git"; exit 1; fi
6
+ if [ -d ".agents/rules" ]; then echo "✅ .agents/rules existe"; else echo "❌ Falta .agents/rules"; exit 1; fi
7
+ if [ -d ".agents/skills" ]; then echo "✅ .agents/skills existe"; else echo "❌ Falta .agents/skills"; exit 1; fi
8
+ if [ -d ".gemstack" ]; then echo "✅ .gemstack existe"; else echo "❌ Falta .gemstack"; exit 1; fi
9
+ if [ -d "specs/current" ]; then echo "✅ specs/current existe"; else echo "❌ Falta specs/current"; exit 1; fi
10
+
11
+ if [ -f "handoff.md" ]; then echo "✅ handoff.md existe"; else touch handoff.md && echo "✅ handoff.md creado"; fi
12
+ if [ -f "handoff_archive.md" ]; then echo "✅ handoff_archive.md existe"; else touch handoff_archive.md && echo "✅ handoff_archive.md creado"; fi
13
+
14
+ if command -v node >/dev/null 2>&1; then echo "✅ Node detectado"; else echo "⚠️ Node no detectado (opcional)"; fi
15
+ echo "💡 Antigravity Browser nativo: Usa /browser en Antigravity, o instala Playwright si ejecutas headless."
16
+ echo "✅ Diagnóstico completado."
@@ -0,0 +1,38 @@
1
+ [Console]::OutputEncoding = [System.Text.UTF8Encoding]::new()
2
+ $OutputEncoding = [System.Text.UTF8Encoding]::new()
3
+
4
+ $ErrorActionPreference = "Continue"
5
+
6
+ Write-Host "[INFO] Gemstack Doctor"
7
+
8
+ # Git check
9
+ try {
10
+ $gitVer = git --version 2>$null
11
+ if ($gitVer -match "git version") { Write-Host "[OK] Git instalado" } else { Write-Host "[ERROR] Git no instalado"; exit 1 }
12
+ } catch {
13
+ Write-Host "[ERROR] Git no instalado"
14
+ exit 1
15
+ }
16
+
17
+ if (Test-Path ".git") { Write-Host "[OK] Repositorio Git detectado" } else { Write-Host "[ERROR] No es un repositorio Git"; exit 1 }
18
+ if (Test-Path ".agents/rules") { Write-Host "[OK] .agents/rules existe" } else { Write-Host "[ERROR] Falta .agents/rules"; exit 1 }
19
+ if (Test-Path ".agents/skills") { Write-Host "[OK] .agents/skills existe" } else { Write-Host "[ERROR] Falta .agents/skills"; exit 1 }
20
+ if (Test-Path ".gemstack") { Write-Host "[OK] .gemstack existe" } else { Write-Host "[ERROR] Falta .gemstack"; exit 1 }
21
+ if (Test-Path "specs/current") { Write-Host "[OK] specs/current existe" } else { Write-Host "[ERROR] Falta specs/current"; exit 1 }
22
+
23
+ if (Test-Path "handoff.md") { Write-Host "[OK] handoff.md existe" } else { New-Item -ItemType File -Path "handoff.md" | Out-Null; Write-Host "[OK] handoff.md creado" }
24
+ if (Test-Path "handoff_archive.md") { Write-Host "[OK] handoff_archive.md existe" } else { New-Item -ItemType File -Path "handoff_archive.md" | Out-Null; Write-Host "[OK] handoff_archive.md creado" }
25
+
26
+ # Node
27
+ try {
28
+ $nodeVer = node -v 2>$null
29
+ if ($nodeVer -match "v") { Write-Host "[OK] Node detectado" } else { Write-Host "[WARN] Node no detectado (opcional)" }
30
+ } catch {
31
+ Write-Host "[WARN] Node no detectado (opcional)"
32
+ }
33
+
34
+ # PowerShell
35
+ Write-Host "[OK] PowerShell funcional"
36
+
37
+ Write-Host "[INFO] Antigravity Browser nativo: Usa /browser en Antigravity, o instala Playwright si ejecutas headless."
38
+ Write-Host "[OK] Diagnostico completado."
@@ -0,0 +1,49 @@
1
+ param(
2
+ [string]$Command = "",
3
+ [string]$Arg1 = ""
4
+ )
5
+
6
+ [Console]::OutputEncoding = [System.Text.UTF8Encoding]::new()
7
+ $OutputEncoding = [System.Text.UTF8Encoding]::new()
8
+
9
+ $ErrorActionPreference = "Stop"
10
+
11
+ switch ($Command) {
12
+ "init" {
13
+ Write-Host "[INIT] Iniciando Gemstack v0.1..."
14
+ New-Item -ItemType Directory -Force -Path ".agents/rules", ".agents/skills", ".gemstack", "specs/current", "specs/templates", "docs", "bin" | Out-Null
15
+ Write-Host "[OK] Estructura creada."
16
+ }
17
+ "list" {
18
+ Write-Host "[LIST] Skills instalados:"
19
+ Get-ChildItem -Path ".agents/skills" -Directory | Select-Object -ExpandProperty Name
20
+ }
21
+ "show" {
22
+ if (-not [string]::IsNullOrWhiteSpace($Arg1)) {
23
+ $path = ".agents/skills\$Arg1\SKILL.md"
24
+ if (Test-Path $path) {
25
+ Get-Content $path -Encoding UTF8
26
+ } else {
27
+ Write-Host "[ERROR] Skill no encontrado: $Arg1"
28
+ }
29
+ } else {
30
+ Write-Host "[ERROR] Debes especificar un skill."
31
+ }
32
+ }
33
+ "doctor" {
34
+ & (Join-Path $PSScriptRoot "gemstack-doctor.ps1")
35
+ }
36
+ "handoff" {
37
+ if (Test-Path "handoff.md") {
38
+ Get-Content "handoff.md" -Encoding UTF8
39
+ } else {
40
+ Write-Host "[ERROR] handoff.md no existe aun."
41
+ }
42
+ }
43
+ "security-audit" {
44
+ Write-Host "[INFO] Para correr un audit real, invoca /cso en tu chat con Antigravity."
45
+ }
46
+ default {
47
+ Write-Host "Uso: .\bin\gemstack.ps1 {init|list|show <skill>|doctor|handoff|security-audit}"
48
+ }
49
+ }
@@ -0,0 +1,6 @@
1
+ # Integración con Google Antigravity
2
+
3
+ Gemstack aprovecha el ecosistema nativo de Antigravity:
4
+ - **Rules (`.agents/rules/`)**: Mapea pseudo-comandos (ej. `/handoff`) para guiar a Gemini.
5
+ - **Skills (`.agents/skills/`)**: Utiliza *Progressive Disclosure* mediante validaciones de frontmatter `triggers`.
6
+ - **Compatibilidad Dual**: Scripts integrados garantizan que puedes testear el contexto y estado tanto desde Unix (`./bin/gemstack`) como de Windows de forma nativa (`.\bin\gemstack.ps1`).
@@ -0,0 +1,9 @@
1
+ # El Sistema Handoff
2
+
3
+ El archivo `handoff.md` es la memoria de tu proyecto.
4
+
5
+ ## Reglas
6
+ 1. Siempre se genera o actualiza al final de la sesión.
7
+ 2. Contiene 5 partes: Objetivo, Estado actual, Archivos tocados, Intentos fallidos y Próximos pasos.
8
+ 3. **Intentos Fallidos NUNCA se borran**: Previenen que Gemini cometa el mismo error (loops de debugging).
9
+ 4. **Archive**: Para evitar que consuma toda la ventana de contexto, el agente mueve las entradas antiguas a `handoff_archive.md` cuando la lista crece demasiado, pero mantiene siempre viva la referencia.
@@ -0,0 +1,25 @@
1
+ # Latest QA Report
2
+ **Date:** 2026-08-19
3
+
4
+ ## QA Flow: SecureDocs
5
+
6
+ ### Entorno de Prueba
7
+ - Node.js (v18+)
8
+ - Automatizado vía `npm run smoke`
9
+
10
+ ### Resultados de Smoke Tests
11
+ Los smoke tests ejecutaron exitosamente los siguientes escenarios:
12
+ - `[OK]` Users fetched correctly
13
+ - `[OK]` Alice created document
14
+ - `[OK]` Bob blocked from reading Alice's doc (Status 404)
15
+ - `[OK]` Bob blocked from deleting Alice's doc (Status 404)
16
+ - `[OK]` Bob created doc with malicious payload
17
+ - `[OK]` Malicious payload ignored: Doc does not belong to Alice
18
+ - `[OK]` Malicious payload ignored: Doc belongs to Bob safely
19
+
20
+ ### Casos de Prueba Ejecutados Manualmente / API
21
+ 1. **[PASS] Selección de Usuario:** Cambiar en el `<select>` entre Alice y Bob recarga exitosamente la lista de documentos (`loadDocs`).
22
+ 2. **[PASS] Testing XSS Básico:** Se inyectó `<script>alert("Hacked")</script>` en el título. El documento se listó en la UI de Alice como un string literal gracias a la codificación DOM generada por `textContent`.
23
+
24
+ ### Conclusión
25
+ - Todos los smoke tests pasan con exit code `0`. Sin bugs bloqueantes detectados. El QA confirma la mitigación de IDOR.
@@ -0,0 +1,7 @@
1
+ # QA & Browser Testing
2
+
3
+ Usa `/qa` o `/qa-only` para validar tu código contra el `spec.md`.
4
+
5
+ ## Herramientas Visuales
6
+ Si desarrollas frontend, puedes pedirle a Antigravity que abra el navegador usando su comando nativo `/browser` para navegar por el sitio local y validar el UI manualmente.
7
+ Alternativamente, si tienes pruebas e2e automatizadas con **Playwright** o **Cypress**, Gemstack puede ejecutarlas y parsear sus resultados durante la fase de QA.
@@ -0,0 +1,21 @@
1
+ # Gemstack Quickstart
2
+
3
+ 1. **Inicializa el entorno**:
4
+ - *Unix:* `./bin/gemstack init`
5
+ - *Windows:* `.\bin\gemstack.ps1 init`
6
+ 2. **Valida la instalación**:
7
+ - *Unix:* `./bin/gemstack doctor`
8
+ - *Windows:* `.\bin\gemstack-doctor.ps1`
9
+ 3. **Tu primera sesión**:
10
+ - Inicia con `/office-hours` para discutir la arquitectura.
11
+ - Escribe `/specify quiero añadir autenticación con JWT`.
12
+ - Revisa `specs/current/spec.md`.
13
+ - Escribe `/plan` para generar la estrategia técnica.
14
+ - Escribe `/tasks` para desglosar la implementación.
15
+ - Escribe `/review` para chequear tu código.
16
+ 4. **Validación y Cierre**:
17
+ - Corre `/cso` y `/qa`.
18
+ - Escribe `/ship` para preparar los commits.
19
+ 5. **Pausa**: Escribe `/handoff` al final de la sesión.
20
+ 6. **Retorno**: Abre chat limpio y escribe:
21
+ > "Lee handoff.md y continúa desde los próximos pasos"
@@ -0,0 +1,29 @@
1
+ # Gemstack Release Process
2
+
3
+ Gemstack is protected by a multi-stage CI/CD pipeline using GitHub Actions. No release process is entirely automated for NPM publishing (for security reasons), so all `npm publish` executions are strictly manual post-verification.
4
+
5
+ ## CI Workflows
6
+
7
+ 1. **`pr-ci.yml`**: Runs on `pull_request` to `main`. This is a fast verification matrix running strictly on `ubuntu-latest` with Node 18.x and 20.x. It executes all unit tests, CLI smoke tests, and cleanliness verifications.
8
+ 2. **`main-ci.yml`**: Runs on `push` to `main`. Full multi-OS matrix (`ubuntu-latest`, `windows-latest`, `macos-latest`) verifying absolute cross-platform integrity.
9
+ 3. **`release-readiness.yml`**: A `workflow_dispatch` manual action. It tests the creation of a `.tgz` via `npm pack`, installs it in a dummy project to guarantee tarball structure, and exposes the `gemstack-npm-tarball` as a downloadable GitHub Artifact. Note: GitHub zips this artifact, so you will extract it to get the inner `.tgz`.
10
+
11
+ ## Local Verifications
12
+
13
+ Before merging or triggering release readiness, you can test everything locally using:
14
+
15
+ ```bash
16
+ # Run unit tests
17
+ npm test
18
+
19
+ # Run all zero-deps CI validators
20
+ npm run ci:all
21
+
22
+ # Run Demo-App smoke tests (IDOR validation)
23
+ npm run ci:demo
24
+
25
+ # Validate tarball contents
26
+ npm run pack:dry
27
+ ```
28
+
29
+ *(Note: We never automatically tag or publish to NPM via CI. The framework focuses entirely on robust local-first scaffolding).*
@@ -0,0 +1,24 @@
1
+ # Latest Review
2
+ **Date:** 2026-08-19
3
+
4
+ ## Overview
5
+ Revisión arquitectónica de Gemstack CLI v0.2 (Zero-dependency installer).
6
+
7
+ ## Archivos Revisados
8
+ - `src/cli.js`, `src/lib/*.js`, `src/commands/*.js`
9
+ - `tests/init.test.js`
10
+
11
+ ## Latest Review (v0.3.0)
12
+ - **Workflows**: Implementados `pr-ci.yml`, `main-ci.yml` y `release-readiness.yml` para validación automatizada cross-platform sin auto-publish.
13
+ - **Scripts CI**: Creados scripts en `scripts/ci/` zero-deps para parseo de YAML (`check-frontmatter`), limpieza de estado (`check-template-clean`), detección de mojibake (`check-mojibake`), análisis del npm pack (`check-package-contents`) y smoke testing interactivo (`smoke-cli.js`).
14
+ - **Line Endings**: Inyectado `.gitattributes` conservador forzando CR/LF de forma predictiva y cuidando hashes SHA-256.
15
+ - **Cross-Platform**: Verificadas APIs node agnósticas a OS en lugar de bash scripts. `smoke-cli.js` usa `os.tmpdir()`.
16
+ - **Demo Smoke**: El workflow prueba las defensas IDOR con `npm run ci:demo` en cada iteración.
17
+
18
+ ## Hallazgos
19
+ - **Fixed:** Parser CLI manual procesa correctamente banderas binarias sin dependencias externas.
20
+ - **Fixed:** Test suite de Node.js corre rápido (~200ms) aisladamente, y las pruebas validan comportamiento de dry-run.
21
+ - **Fixed:** `.npmignore` se añadió excluyendo directorios ajenos (`demo-app/`, `tests/`) logrando un paquete eficiente.
22
+ - **Follow-up for v0.2 Release:** Cuando estemos listos para publicar, necesitaremos documentar o preparar automatización GitHub Actions para testing continuo.
23
+
24
+ **Decisión**: APPROVED. El CLI mantiene filosofía "safety-first" y "zero-deps".
@@ -0,0 +1,35 @@
1
+ # Latest Security Audit
2
+ **Date:** 2026-08-19
3
+
4
+ ## CSO Report: Gemstack CLI v0.2 Installer
5
+
6
+ ### 1. Path Traversal & Symlinks
7
+ - **Status:** [Fixed]
8
+ - **Severity:** Critical
9
+ - **Detail:** Verificado en `src/lib/filesystem-safe.js`. `resolveSafe` verifica con `startsWith()` que el directorio resultante nunca escape la carpeta target, bloqueando `../../` payloads o configuraciones ambiguas.
10
+
11
+ ### 2. Supply Chain Risks
12
+ - **Status:** [Fixed]
13
+ - **Severity:** High
14
+ - **Detail:** Se decidió implementar CLI con **cero dependencias**. `package.json` está libre de packages externos en runtime. Elimina 100% ataques de cadena de suministro vía NPM sobre Gemstack CLI actual.
15
+
16
+ ### 3. Ejecución de código arbitrario
17
+ - **Status:** [Fixed]
18
+ - **Severity:** High
19
+ - **Detail:** El comando `init` realiza operaciones FS puras de lectura y escritura. No emite llamadas a `child_process.exec`, impidiendo Remote Code Execution en el target.
20
+
21
+ ### 4. Overwrite de data y backups sin secretos
22
+ - **Status:** [Fixed]
23
+ - **Severity:** Medium
24
+ - **Detail:** `src/lib/backup.js` realiza el traslado físico en caso de colisión. El logging de backup fue revisado para sólo imprimir en consola el *path* y no el contenido del archivo, lo que protege contra fugas de credenciales locales hacia CI/CD logs.
25
+
26
+ ## Latest Security Audit (v0.3.0)
27
+ - **Secrets Leakage**: `npm pack --dry-run` and smoke tests run locally within temporary paths blocking any hardcoded secrets. `GITHUB_TOKEN` is constrained. No variables dumped.
28
+ - **Artifact Leakage**: The template cleanliness check strictly blocks any real project history, DBs (`.sqlite`), or logs from being bundled into the tarball.
29
+ - **NPM Publish**: NPM Publishing remains entirely manual; no GitHub Action has publish permissions, neutralizing automated supply-chain contamination.
30
+ - **Path Safety (Indirect)**: Workflows rely on standard Actions avoiding risky user-input reflection in shells.
31
+ - **CI Permissions**: Standard read-only intent. No aggressive caching strategies introduced that would leak secure payloads across branches.
32
+
33
+ All checks passed.
34
+
35
+ **Decisión General**: APPROVED. El diseño priorizó defensibilidad por encima de comodidad, resultando en un instalador aséptico.
@@ -0,0 +1,17 @@
1
+ # Seguridad Práctica en Gemstack (CSO)
2
+
3
+ Gemstack incluye el skill `gemstack-cso`, que actúa como tu Chief Security Officer virtual.
4
+
5
+ Invócalo mediante `/cso` (para una revisión general) o mediante sus sub-comandos para revisiones específicas.
6
+
7
+ ## Módulos de Revisión:
8
+ 1. `/security-idor`: Control de acceso y pertenencia de recursos.
9
+ 2. `/security-api`: CORS, Rate Limiting, y autenticación.
10
+ 3. `/security-deps`: Análisis de `package.json` o `requirements.txt`.
11
+ 4. `/security-uploads`: Validación rigurosa de magic bytes en subidas.
12
+ 5. `/security-sql`: Prevención de Inyección SQL.
13
+ 6. `/security-sessions`: Revisión de estrategias de tokens y cookies.
14
+ 7. `/security-webhooks`: Verificación de firmas de Stripe/PayPal.
15
+ 8. `/security-headers`: CSP y protección XSS.
16
+
17
+ **Guardrail:** El CSO puede corregir código trivial de seguridad, pero cambios mayores (migraciones, auth) requieren un Plan de Seguridad y tu aprobación explícita.
package/docs/skills.md ADDED
@@ -0,0 +1,17 @@
1
+ # Skills & Pseudo-comandos
2
+
3
+ Gemstack vincula pseudo-comandos a Skills específicos:
4
+
5
+ - `/handoff` -> `gemstack-handoff`
6
+ - `/resume` -> `gemstack-resume`
7
+ - `/office-hours` -> `gemstack-office-hours`
8
+ - `/specify` -> `gemstack-spec`
9
+ - `/plan` -> `gemstack-plan`
10
+ - `/tasks` -> `gemstack-tasks`
11
+ - `/review` -> `gemstack-review`
12
+ - `/investigate` -> `gemstack-investigate`
13
+ - `/cso`, `/security-*` -> `gemstack-cso`
14
+ - `/qa`, `/qa-only` -> `gemstack-qa`
15
+ - `/ship` -> `gemstack-ship`
16
+ - `/learn` -> `gemstack-learn`
17
+ - `/careful`, `/freeze`, `/guard`, `/unfreeze` -> `gemstack-guard`
@@ -0,0 +1,10 @@
1
+ # Spec-Driven Development (SDD) en Gemstack
2
+
3
+ Inspirado en Spec Kit, Gemstack obliga a pensar antes de teclear.
4
+
5
+ 1. **El Qué (`spec.md`)**: Requisitos funcionales, criterios de aceptación (checkboxes) y casos límite. No tiene detalles de implementación.
6
+ 2. **El Cómo (`plan.md`)**: Arquitectura, esquema de base de datos, rutas, y dependencias necesarias.
7
+ 3. **El Cuándo (`tasks.md`)**: Pasos lógicos a seguir para construirlo.
8
+
9
+ Usa `/specify` para comenzar este ciclo.
10
+ Una vez que el spec esté aprobado por el usuario, usa `/plan` y luego `/tasks`.
Binary file
package/handoff.md ADDED
@@ -0,0 +1,45 @@
1
+ # Gemstack Handoff (v1.0.0)
2
+
3
+ ## Resumen del Proyecto
4
+ Gemstack es un "Sistema Operativo para IA" de cero dependencias (Zero-Dependency) que inyecta reglas militares de ciberseguridad, autonomía y flujos de Spec-Driven Development en cualquier repositorio local, permitiendo a los desarrolladores pair-programar de forma estructurada con inteligencias artificiales como Antigravity o Cursor.
5
+
6
+ ## Estado Actual
7
+ El proyecto ha alcanzado oficialmente la **Versión 1.0.0 (Open-Source Ready)**.
8
+ Durante el último sprint se añadieron las capacidades clave para transformar a Gemstack de un simple manejador de prompts en un verdadero ecosistema agentico:
9
+
10
+ 1. **Military-Grade DevSecOps (Rules 03 & 04):**
11
+ - Actualización a AppSec Nivel 2 (Mitigación de Race Conditions, CSRF, SSRF, Rate Limiting).
12
+ - Nueva regla de Infraestructura (`04-gemstack-infrastructure.md`) exigiendo contenedores, VPCs y gestores de secretos cloud.
13
+ 2. **Git Hooks (Active Security):**
14
+ - Comando `npx gemstack hooks` implementado en `src/commands/hooks.js`.
15
+ - Previene localmente (antes del commit) la subida de `.env`, llaves hardcodeadas, y marcadores de conflicto de git.
16
+ 3. **Ecosistema de Plugins y Skills:**
17
+ - Comando `npx gemstack install <url>` inyectado en `src/commands/install.js` usando `fetch` nativo de Node 18+. Permite descargar skills de la comunidad directamente a `.agents/skills/`.
18
+ 4. **Dashboard de Generative UI:**
19
+ - Skill `gemstack-dashboard` (`/dashboard`) creado para leer el estado del proyecto y renderizar un widget HTML interactivo con el progreso de `tasks.md`.
20
+ 5. **Servidor Nativo MCP (Model Context Protocol):**
21
+ - Implementado en `src/mcp-server.js`. Gemstack ahora actúa como un servidor MCP accesible vía `npx gemstack mcp`, exponiendo el SDD del proyecto a clientes IA externos mediante JSON-RPC sobre stdio.
22
+ 6. **Package Version:**
23
+ - El archivo `package.json` fue ascendido a `v1.0.0`.
24
+
25
+ ## Últimos Cambios Realizados
26
+ - Creación de `.agents/rules/04-gemstack-infrastructure.md`
27
+ - Modificación profunda de `.agents/rules/03-gemstack-security.md` (Level 2).
28
+ - Evolución de `gemstack-cso` para revisar infraestructura.
29
+ - Nuevo script `src/commands/hooks.js` y vinculación en `cli.js` e `init.js`.
30
+ - Nuevo script `src/commands/install.js`.
31
+ - Creación del Skill `gemstack-dashboard` y actualización de `.agents/rules/01-gemstack-core.md`.
32
+ - Nuevo servidor `src/mcp-server.js` y vinculación CLI.
33
+ - Todos los archivos `.agents/` nuevos fueron replicados en la carpeta `template/`.
34
+ - Actualización mayor de `README.md` documentando todas las capacidades "v1.0".
35
+
36
+ ## Qué Sigue (Next Steps para futuras sesiones)
37
+ 1. **Adopción y Difusión:** El proyecto está listo para ser publicado abiertamente. Los usuarios pueden empezar a instalarlo en sus propios proyectos web.
38
+ 2. **Ampliar el Mercado de Skills:** Podríamos crear un repositorio independiente (`gemstack-skills`) donde la comunidad aloje sus skills compartidos.
39
+ 3. **Mantenimiento del Servidor MCP:** Actualmente el servidor MCP expone 2 herramientas (`get_current_tasks`, `get_security_rules`). En futuras iteraciones se podrían agregar herramientas de mutación (escribir specs a través de MCP).
40
+
41
+ ## Archivos Críticos a Tener en Cuenta
42
+ - `src/cli.js`: El cerebro del enrutador de comandos.
43
+ - `src/commands/*.js`: Cada comando de la CLI está encapsulado de forma nativa.
44
+ - `template/`: Esta carpeta *debe* contener un espejo exacto de `.agents/`, `.gemstack/`, `docs/` y `specs/`. ¡Nunca modifiques reglas locales sin actualizarlas en el `template/`!
45
+ - `scripts/ci/*.js`: Toda la validación CI depende de scripts cero-dependencias escritos en Node.
@@ -0,0 +1,61 @@
1
+ # Handoff Archive
2
+
3
+ Histórico de intentos fallidos antiguos movidos desde `handoff.md`.
4
+
5
+ ## Archivo
6
+ # Handoff
7
+
8
+ ## 1. Objetivo
9
+ **[Fin de Jornada]** Integrar las metodologías y entregables de Spec-Driven Development (SDD) dentro del motor de agentes de Gemstack, formalizando la creación de especificaciones inmutables, Test-First Development y arquitecturas orientadas a interfaces.
10
+
11
+ ## 2. Estado actual
12
+ Hemos analizado el repositorio de referencia de `spec-kit` y actualizado todas nuestras habilidades y plantillas base de Gemstack para alinear los pseudo-comandos `/specify`, `/plan` y `/tasks`.
13
+ Se implementó la **Constitución de Gemstack (The 9 Articles)** para prevenir alucinaciones de LLM (`[NEEDS CLARIFICATION]`), forzar implementaciones modulares (Library-First) y establecer la filosofía TDD (Test-First Imperative). Además, el flujo ha migrado de una sola carpeta `current` hacia el uso de **Feature Branches** (ej. `specs/004-nueva-feature/`) junto a artefactos satélites (modelos de datos, contratos, y quickstarts). Todo el trabajo ha sido pusheado a `main`.
14
+
15
+ ## 3. Archivos y cambios
16
+ - **Reglas (Constitution):** Creado `.agents/rules/02-gemstack-constitution.md`.
17
+ - **Plantillas (Templates):** Refactorizados fuertemente `specs/templates/spec.md`, `specs/templates/plan.md`, y `specs/templates/tasks.md` introduciendo prioridades (P1, P2), Constitution Checks y métricas de éxito (Measurable Outcomes).
18
+ - **Skills:** Actualizados `gemstack-spec`, `gemstack-plan` y `gemstack-tasks` para reconocer la constitución, forzar el uso de `[NEEDS CLARIFICATION]`, soportar entregables satélites y soportar tareas paralelizables con el marcador `[P]`.
19
+
20
+ ## 4. Intentos fallidos
21
+ <!-- NUNCA BORRES ESTA SECCIÓN. Si crece mucho, mueve entradas antiguas a handoff_archive.md. -->
22
+ - Ejecución directa de scripts bash a través de Antigravity `run_command` (WSL execvpe failed). El CLI fue saneado para que al menos funcione correctamente en bash/git-bash nativo o entornos Unix y se previno el falso positivo en la detección de git.
23
+ - PowerShell arrojó error de "Expresión de asignación no válida" en el bloque `param()` de `gemstack.ps1` al inyectar líneas antes de dicho bloque. Solución: Se corrigió dejando el bloque `param()` obligatoriamente como lo primero en el script.
24
+ - Caracteres de codificación (Diagnóstico) persistieron en PowerShell console a pesar del reemplazo UTF-8 automatizado. Solución: reescritura directa del archivo usando las herramientas nativas del agente y ASCII labels por seguridad.
25
+ - Conflicto en el globbing de la test suite predeterminada (`node --test`). Ejecutaba involuntariamente el servidor de SecureDocs (`smoke-test.js`) lo que bloqueaba la suite. Solución: Se restringió explícitamente en el `package.json` a correr sobre la ruta `tests/*.test.js`.
26
+ - Parser manual de `--help` no captaba globalmente si se ponía como segundo o primer argumento tras Node (`argv[2]`). Solución: Parser refactorizado para inferencia temprana.
27
+
28
+ ## 5. Próximos pasos
29
+ El framework interno de agentes de Gemstack ahora es capaz de desarrollar con rigor bajo Spec-Driven Development. El próximo paso natural es:
30
+ 1. Poner a prueba la nueva arquitectura de plantillas creando una nueva funcionalidad (Feature 004) utilizando `/specify`.
31
+ 2. Continuar con el roadmap oficial hacia v0.4, abordando la publicación de NPM y la automatización de GitHub Releases.
32
+ 3. Explorar la automatización de QA Testing de navegadores ahora que las tareas soportan el desglose satelital de `[P]` (Paralelización) y la validación MVP temprana.
33
+ # Gemstack - Handoff
34
+
35
+ **Fecha:** 30 de Agosto de 2026
36
+ **Fase Actual:** Desarrollo Continuo (v0.4/Open-Source Ready)
37
+ **Estado:** Idle
38
+
39
+ ## 1. Resumen de la Sesión
40
+ Durante esta sesión intensiva se completaron 4 grandes hitos ("Features") que transformaron a Gemstack en un framework agentico maduro, seguro y listo para su distribución Open Source:
41
+
42
+ - **Feature 004 (Release Automation):** Se implementó un flujo CI/CD en `.github/workflows/publish.yml` que empaqueta y publica la herramienta en NPM y genera un GitHub Release automático cada vez que se empuja un tag `v*`.
43
+ - **Feature 005 (The "WOW" Update - Advanced Autonomy):** Se crearon los skills `/qa-visual`, `/swarm`, `/heal` y `/sandbox`. Ahora el agente tiene instrucciones nativas para hacer UI testing autónomo, delegar subagentes en paralelo, auto-sanar builds de CI rotos y correr código riesgoso en Docker.
44
+ - **Feature 006 (Military-Grade Security Shield):** Se integró el documento `SEGURIDAD.MD` del usuario creando la regla inmutable `.agents/rules/03-gemstack-security.md`. El `/cso` y `/review` ahora bloquean activamente vulnerabilidades como IDOR, exposición de llaves y falta de firmas en webhooks.
45
+ - **Feature 007 (Open Source Readiness):** Se reescribió por completo el `README.md` (con badges y estructura profesional), se añadieron `CONTRIBUTING.md` y `CODE_OF_CONDUCT.md`. Se estabilizó `demo-app` cambiando el puerto de pruebas a 3001.
46
+
47
+ ## 2. Archivos Modificados Recientemente
48
+ - `package.json` (bump a 0.3.0, scripts ci)
49
+ - `.github/workflows/publish.yml`
50
+ - `.agents/rules/01-gemstack-core.md`, `03-gemstack-security.md`
51
+ - `.agents/skills/gemstack-*` (Múltiples skills creados y editados)
52
+ - `template/` (Toda la distribución sincronizada)
53
+ - `README.md`, `CONTRIBUTING.md`, `CODE_OF_CONDUCT.md`
54
+ - `demo-app/server.js`, `demo-app/scripts/smoke-test.js`
55
+
56
+ ## 3. Trabajo Pendiente o Bloqueos
57
+ - **Bloqueos:** Ninguno. La pipeline `ci:all` está en verde y el código está subido a la rama `main`.
58
+ - **Tests Faltantes:** Durante el análisis previo, se identificó que comandos como `list`, `show`, `doctor` y `parser` podrían beneficiarse de cobertura unitaria más profunda en v0.4.
59
+
60
+ ## 4. Próximos Pasos (Next Steps)
61
+ - Esperando las próximas instrucciones del usuario para continuar la evolución del framework, posiblemente explorando la publicación oficial a NPM o mejoras de arquitectura.
package/package.json ADDED
@@ -0,0 +1,25 @@
1
+ {
2
+ "name": "gemstack-ai",
3
+ "version": "1.0.1",
4
+ "description": "Agentic Spec-Driven Development framework for Gemini/Antigravity",
5
+ "main": "src/cli.js",
6
+ "bin": {
7
+ "gemstack": "src/cli.js"
8
+ },
9
+ "engines": {
10
+ "node": ">=18.18.0"
11
+ },
12
+ "scripts": {
13
+ "test": "node --test tests/init.test.js",
14
+ "pack:dry": "npm pack --dry-run",
15
+ "ci:frontmatter": "node scripts/ci/check-frontmatter.js",
16
+ "ci:template": "node scripts/ci/check-template-clean.js",
17
+ "ci:mojibake": "node scripts/ci/check-mojibake.js",
18
+ "ci:package": "node scripts/ci/check-package-contents.js",
19
+ "ci:smoke": "node scripts/ci/smoke-cli.js",
20
+ "ci:demo": "npm --prefix demo-app install && npm --prefix demo-app run smoke",
21
+ "ci:all": "npm test && npm run ci:frontmatter && npm run ci:template && npm run ci:mojibake && npm run ci:package && npm run ci:smoke && npm run ci:demo"
22
+ },
23
+ "dependencies": {},
24
+ "devDependencies": {}
25
+ }