product-playbook 1.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/LICENSE +21 -0
- package/README.es.md +518 -0
- package/README.ja.md +519 -0
- package/README.ko.md +518 -0
- package/README.md +520 -0
- package/README.zh-CN.md +518 -0
- package/README.zh-TW.md +518 -0
- package/SKILL.md +244 -0
- package/commands/product-build.md +13 -0
- package/commands/product-dev.md +21 -0
- package/commands/product-full.md +13 -0
- package/commands/product-prd.md +14 -0
- package/commands/product-quick.md +13 -0
- package/commands/product-report.md +12 -0
- package/commands/product-revision.md +13 -0
- package/i18n/en/SKILL.md +245 -0
- package/i18n/en/commands/product-build.md +13 -0
- package/i18n/en/commands/product-dev.md +21 -0
- package/i18n/en/commands/product-full.md +13 -0
- package/i18n/en/commands/product-prd.md +14 -0
- package/i18n/en/commands/product-quick.md +13 -0
- package/i18n/en/commands/product-report.md +12 -0
- package/i18n/en/commands/product-revision.md +13 -0
- package/i18n/en/references/00-opportunity-check.md +44 -0
- package/i18n/en/references/01-strategy.md +90 -0
- package/i18n/en/references/02a-persona.md +57 -0
- package/i18n/en/references/02b-jtbd.md +125 -0
- package/i18n/en/references/02c-ost-journey.md +65 -0
- package/i18n/en/references/03-define.md +118 -0
- package/i18n/en/references/04a-prfaq.md +112 -0
- package/i18n/en/references/04b-solutions.md +269 -0
- package/i18n/en/references/04c-mvp.md +21 -0
- package/i18n/en/references/05a-northstar-aha.md +93 -0
- package/i18n/en/references/05b-pmf-gtm.md +102 -0
- package/i18n/en/references/05c-validation-spec.md +117 -0
- package/i18n/en/references/06-html-report.md +128 -0
- package/i18n/en/references/07a-handoff-core.md +152 -0
- package/i18n/en/references/07b-tasks-tickets.md +215 -0
- package/i18n/en/references/07c-architecture-setup.md +197 -0
- package/i18n/en/references/08-security-checklist.md +221 -0
- package/i18n/en/references/rules-build.md +152 -0
- package/i18n/en/references/rules-change-propagation.md +74 -0
- package/i18n/en/references/rules-commands.md +98 -0
- package/i18n/en/references/rules-context.md +291 -0
- package/i18n/en/references/rules-custom.md +63 -0
- package/i18n/en/references/rules-document-tools.md +126 -0
- package/i18n/en/references/rules-end-of-flow.md +150 -0
- package/i18n/en/references/rules-export-document.md +346 -0
- package/i18n/en/references/rules-file-integration.md +65 -0
- package/i18n/en/references/rules-full.md +66 -0
- package/i18n/en/references/rules-import-document.md +261 -0
- package/i18n/en/references/rules-product-type.md +14 -0
- package/i18n/en/references/rules-progress.md +60 -0
- package/i18n/en/references/rules-quick.md +29 -0
- package/i18n/en/references/rules-revision.md +64 -0
- package/i18n/es/SKILL.md +245 -0
- package/i18n/es/commands/product-build.md +13 -0
- package/i18n/es/commands/product-dev.md +21 -0
- package/i18n/es/commands/product-full.md +13 -0
- package/i18n/es/commands/product-prd.md +14 -0
- package/i18n/es/commands/product-quick.md +13 -0
- package/i18n/es/commands/product-report.md +12 -0
- package/i18n/es/commands/product-revision.md +13 -0
- package/i18n/es/references/00-opportunity-check.md +44 -0
- package/i18n/es/references/01-strategy.md +90 -0
- package/i18n/es/references/02a-persona.md +57 -0
- package/i18n/es/references/02b-jtbd.md +125 -0
- package/i18n/es/references/02c-ost-journey.md +65 -0
- package/i18n/es/references/03-define.md +118 -0
- package/i18n/es/references/04a-prfaq.md +114 -0
- package/i18n/es/references/04b-solutions.md +269 -0
- package/i18n/es/references/04c-mvp.md +21 -0
- package/i18n/es/references/05a-northstar-aha.md +93 -0
- package/i18n/es/references/05b-pmf-gtm.md +102 -0
- package/i18n/es/references/05c-validation-spec.md +117 -0
- package/i18n/es/references/06-html-report.md +138 -0
- package/i18n/es/references/07a-handoff-core.md +152 -0
- package/i18n/es/references/07b-tasks-tickets.md +215 -0
- package/i18n/es/references/07c-architecture-setup.md +197 -0
- package/i18n/es/references/08-security-checklist.md +221 -0
- package/i18n/es/references/rules-build.md +152 -0
- package/i18n/es/references/rules-change-propagation.md +74 -0
- package/i18n/es/references/rules-commands.md +98 -0
- package/i18n/es/references/rules-context.md +291 -0
- package/i18n/es/references/rules-custom.md +63 -0
- package/i18n/es/references/rules-document-tools.md +126 -0
- package/i18n/es/references/rules-end-of-flow.md +150 -0
- package/i18n/es/references/rules-export-document.md +346 -0
- package/i18n/es/references/rules-file-integration.md +65 -0
- package/i18n/es/references/rules-full.md +66 -0
- package/i18n/es/references/rules-import-document.md +261 -0
- package/i18n/es/references/rules-product-type.md +14 -0
- package/i18n/es/references/rules-progress.md +60 -0
- package/i18n/es/references/rules-quick.md +29 -0
- package/i18n/es/references/rules-revision.md +64 -0
- package/i18n/ja/SKILL.md +245 -0
- package/i18n/ja/commands/product-build.md +13 -0
- package/i18n/ja/commands/product-dev.md +21 -0
- package/i18n/ja/commands/product-full.md +13 -0
- package/i18n/ja/commands/product-prd.md +14 -0
- package/i18n/ja/commands/product-quick.md +13 -0
- package/i18n/ja/commands/product-report.md +12 -0
- package/i18n/ja/commands/product-revision.md +13 -0
- package/i18n/ja/references/00-opportunity-check.md +44 -0
- package/i18n/ja/references/01-strategy.md +90 -0
- package/i18n/ja/references/02a-persona.md +57 -0
- package/i18n/ja/references/02b-jtbd.md +125 -0
- package/i18n/ja/references/02c-ost-journey.md +65 -0
- package/i18n/ja/references/03-define.md +118 -0
- package/i18n/ja/references/04a-prfaq.md +111 -0
- package/i18n/ja/references/04b-solutions.md +269 -0
- package/i18n/ja/references/04c-mvp.md +21 -0
- package/i18n/ja/references/05a-northstar-aha.md +93 -0
- package/i18n/ja/references/05b-pmf-gtm.md +102 -0
- package/i18n/ja/references/05c-validation-spec.md +117 -0
- package/i18n/ja/references/06-html-report.md +126 -0
- package/i18n/ja/references/07a-handoff-core.md +152 -0
- package/i18n/ja/references/07b-tasks-tickets.md +215 -0
- package/i18n/ja/references/07c-architecture-setup.md +197 -0
- package/i18n/ja/references/08-security-checklist.md +221 -0
- package/i18n/ja/references/rules-build.md +152 -0
- package/i18n/ja/references/rules-change-propagation.md +74 -0
- package/i18n/ja/references/rules-commands.md +98 -0
- package/i18n/ja/references/rules-context.md +291 -0
- package/i18n/ja/references/rules-custom.md +63 -0
- package/i18n/ja/references/rules-document-tools.md +126 -0
- package/i18n/ja/references/rules-end-of-flow.md +150 -0
- package/i18n/ja/references/rules-export-document.md +346 -0
- package/i18n/ja/references/rules-file-integration.md +65 -0
- package/i18n/ja/references/rules-full.md +66 -0
- package/i18n/ja/references/rules-import-document.md +261 -0
- package/i18n/ja/references/rules-product-type.md +14 -0
- package/i18n/ja/references/rules-progress.md +60 -0
- package/i18n/ja/references/rules-quick.md +29 -0
- package/i18n/ja/references/rules-revision.md +64 -0
- package/i18n/ko/SKILL.md +245 -0
- package/i18n/ko/commands/product-build.md +13 -0
- package/i18n/ko/commands/product-dev.md +21 -0
- package/i18n/ko/commands/product-full.md +13 -0
- package/i18n/ko/commands/product-prd.md +14 -0
- package/i18n/ko/commands/product-quick.md +13 -0
- package/i18n/ko/commands/product-report.md +12 -0
- package/i18n/ko/commands/product-revision.md +13 -0
- package/i18n/ko/references/00-opportunity-check.md +44 -0
- package/i18n/ko/references/01-strategy.md +90 -0
- package/i18n/ko/references/02a-persona.md +57 -0
- package/i18n/ko/references/02b-jtbd.md +125 -0
- package/i18n/ko/references/02c-ost-journey.md +65 -0
- package/i18n/ko/references/03-define.md +118 -0
- package/i18n/ko/references/04a-prfaq.md +112 -0
- package/i18n/ko/references/04b-solutions.md +269 -0
- package/i18n/ko/references/04c-mvp.md +21 -0
- package/i18n/ko/references/05a-northstar-aha.md +93 -0
- package/i18n/ko/references/05b-pmf-gtm.md +102 -0
- package/i18n/ko/references/05c-validation-spec.md +117 -0
- package/i18n/ko/references/06-html-report.md +126 -0
- package/i18n/ko/references/07a-handoff-core.md +152 -0
- package/i18n/ko/references/07b-tasks-tickets.md +215 -0
- package/i18n/ko/references/07c-architecture-setup.md +197 -0
- package/i18n/ko/references/08-security-checklist.md +221 -0
- package/i18n/ko/references/rules-build.md +152 -0
- package/i18n/ko/references/rules-change-propagation.md +74 -0
- package/i18n/ko/references/rules-commands.md +98 -0
- package/i18n/ko/references/rules-context.md +291 -0
- package/i18n/ko/references/rules-custom.md +63 -0
- package/i18n/ko/references/rules-document-tools.md +126 -0
- package/i18n/ko/references/rules-end-of-flow.md +150 -0
- package/i18n/ko/references/rules-export-document.md +346 -0
- package/i18n/ko/references/rules-file-integration.md +65 -0
- package/i18n/ko/references/rules-full.md +66 -0
- package/i18n/ko/references/rules-import-document.md +261 -0
- package/i18n/ko/references/rules-product-type.md +14 -0
- package/i18n/ko/references/rules-progress.md +60 -0
- package/i18n/ko/references/rules-quick.md +29 -0
- package/i18n/ko/references/rules-revision.md +64 -0
- package/i18n/zh-CN/SKILL.md +245 -0
- package/i18n/zh-CN/commands/product-build.md +13 -0
- package/i18n/zh-CN/commands/product-dev.md +21 -0
- package/i18n/zh-CN/commands/product-full.md +13 -0
- package/i18n/zh-CN/commands/product-prd.md +14 -0
- package/i18n/zh-CN/commands/product-quick.md +13 -0
- package/i18n/zh-CN/commands/product-report.md +12 -0
- package/i18n/zh-CN/commands/product-revision.md +13 -0
- package/i18n/zh-CN/references/00-opportunity-check.md +44 -0
- package/i18n/zh-CN/references/01-strategy.md +90 -0
- package/i18n/zh-CN/references/02a-persona.md +57 -0
- package/i18n/zh-CN/references/02b-jtbd.md +125 -0
- package/i18n/zh-CN/references/02c-ost-journey.md +65 -0
- package/i18n/zh-CN/references/03-define.md +118 -0
- package/i18n/zh-CN/references/04a-prfaq.md +106 -0
- package/i18n/zh-CN/references/04b-solutions.md +269 -0
- package/i18n/zh-CN/references/04c-mvp.md +21 -0
- package/i18n/zh-CN/references/05a-northstar-aha.md +93 -0
- package/i18n/zh-CN/references/05b-pmf-gtm.md +102 -0
- package/i18n/zh-CN/references/05c-validation-spec.md +117 -0
- package/i18n/zh-CN/references/06-html-report.md +123 -0
- package/i18n/zh-CN/references/07a-handoff-core.md +152 -0
- package/i18n/zh-CN/references/07b-tasks-tickets.md +215 -0
- package/i18n/zh-CN/references/07c-architecture-setup.md +197 -0
- package/i18n/zh-CN/references/08-security-checklist.md +221 -0
- package/i18n/zh-CN/references/rules-build.md +152 -0
- package/i18n/zh-CN/references/rules-change-propagation.md +74 -0
- package/i18n/zh-CN/references/rules-commands.md +98 -0
- package/i18n/zh-CN/references/rules-context.md +291 -0
- package/i18n/zh-CN/references/rules-custom.md +63 -0
- package/i18n/zh-CN/references/rules-document-tools.md +126 -0
- package/i18n/zh-CN/references/rules-end-of-flow.md +150 -0
- package/i18n/zh-CN/references/rules-export-document.md +346 -0
- package/i18n/zh-CN/references/rules-file-integration.md +65 -0
- package/i18n/zh-CN/references/rules-full.md +66 -0
- package/i18n/zh-CN/references/rules-import-document.md +261 -0
- package/i18n/zh-CN/references/rules-product-type.md +14 -0
- package/i18n/zh-CN/references/rules-progress.md +60 -0
- package/i18n/zh-CN/references/rules-quick.md +29 -0
- package/i18n/zh-CN/references/rules-revision.md +64 -0
- package/i18n/zh-TW/SKILL.md +244 -0
- package/i18n/zh-TW/commands/product-build.md +13 -0
- package/i18n/zh-TW/commands/product-dev.md +21 -0
- package/i18n/zh-TW/commands/product-full.md +13 -0
- package/i18n/zh-TW/commands/product-prd.md +14 -0
- package/i18n/zh-TW/commands/product-quick.md +13 -0
- package/i18n/zh-TW/commands/product-report.md +12 -0
- package/i18n/zh-TW/commands/product-revision.md +13 -0
- package/i18n/zh-TW/references/00-opportunity-check.md +44 -0
- package/i18n/zh-TW/references/01-strategy.md +90 -0
- package/i18n/zh-TW/references/02a-persona.md +57 -0
- package/i18n/zh-TW/references/02b-jtbd.md +125 -0
- package/i18n/zh-TW/references/02c-ost-journey.md +65 -0
- package/i18n/zh-TW/references/03-define.md +118 -0
- package/i18n/zh-TW/references/04a-prfaq.md +106 -0
- package/i18n/zh-TW/references/04b-solutions.md +269 -0
- package/i18n/zh-TW/references/04c-mvp.md +21 -0
- package/i18n/zh-TW/references/05a-northstar-aha.md +93 -0
- package/i18n/zh-TW/references/05b-pmf-gtm.md +102 -0
- package/i18n/zh-TW/references/05c-validation-spec.md +117 -0
- package/i18n/zh-TW/references/06-html-report.md +123 -0
- package/i18n/zh-TW/references/07a-handoff-core.md +152 -0
- package/i18n/zh-TW/references/07b-tasks-tickets.md +215 -0
- package/i18n/zh-TW/references/07c-architecture-setup.md +197 -0
- package/i18n/zh-TW/references/08-security-checklist.md +221 -0
- package/i18n/zh-TW/references/rules-build.md +152 -0
- package/i18n/zh-TW/references/rules-change-propagation.md +74 -0
- package/i18n/zh-TW/references/rules-commands.md +98 -0
- package/i18n/zh-TW/references/rules-context.md +291 -0
- package/i18n/zh-TW/references/rules-custom.md +63 -0
- package/i18n/zh-TW/references/rules-document-tools.md +126 -0
- package/i18n/zh-TW/references/rules-end-of-flow.md +150 -0
- package/i18n/zh-TW/references/rules-export-document.md +346 -0
- package/i18n/zh-TW/references/rules-file-integration.md +65 -0
- package/i18n/zh-TW/references/rules-full.md +66 -0
- package/i18n/zh-TW/references/rules-import-document.md +261 -0
- package/i18n/zh-TW/references/rules-product-type.md +14 -0
- package/i18n/zh-TW/references/rules-progress.md +60 -0
- package/i18n/zh-TW/references/rules-quick.md +29 -0
- package/i18n/zh-TW/references/rules-revision.md +64 -0
- package/install.sh +418 -0
- package/package.json +41 -0
- package/references/00-opportunity-check.md +44 -0
- package/references/01-strategy.md +90 -0
- package/references/02a-persona.md +57 -0
- package/references/02b-jtbd.md +125 -0
- package/references/02c-ost-journey.md +65 -0
- package/references/03-define.md +118 -0
- package/references/04a-prfaq.md +106 -0
- package/references/04b-solutions.md +269 -0
- package/references/04c-mvp.md +21 -0
- package/references/05a-northstar-aha.md +93 -0
- package/references/05b-pmf-gtm.md +102 -0
- package/references/05c-validation-spec.md +117 -0
- package/references/06-html-report.md +123 -0
- package/references/07a-handoff-core.md +152 -0
- package/references/07b-tasks-tickets.md +215 -0
- package/references/07c-architecture-setup.md +197 -0
- package/references/08-security-checklist.md +221 -0
- package/references/rules-build.md +152 -0
- package/references/rules-change-propagation.md +74 -0
- package/references/rules-commands.md +98 -0
- package/references/rules-context.md +291 -0
- package/references/rules-custom.md +63 -0
- package/references/rules-document-tools.md +126 -0
- package/references/rules-end-of-flow.md +150 -0
- package/references/rules-export-document.md +346 -0
- package/references/rules-file-integration.md +65 -0
- package/references/rules-full.md +66 -0
- package/references/rules-import-document.md +261 -0
- package/references/rules-product-type.md +14 -0
- package/references/rules-progress.md +60 -0
- package/references/rules-quick.md +29 -0
- package/references/rules-revision.md +64 -0
- package/references/templates/prd-style.css +464 -0
- package/references/templates/report-style.css +114 -0
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
# Reglas de Importación y Análisis de Documentos
|
|
2
|
+
|
|
3
|
+
> Se carga cuando el usuario sube un archivo PDF / DOCX / PPTX, o activa `/parse [archivo]`.
|
|
4
|
+
> En el primer uso, cargar `rules-document-tools.md` primero para confirmar que las herramientas están instaladas.
|
|
5
|
+
> Esta regla funciona en conjunto con `rules-file-integration.md` — ese archivo define "cuándo activar," este archivo define "cómo analizar."
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Objetivo del Análisis
|
|
10
|
+
|
|
11
|
+
Convertir cualquier formato de documento de entrada en **Markdown estructurado** para uso en flujos posteriores:
|
|
12
|
+
- Recopilación de contexto S1 del modo Extensión de Funcionalidades / Revisión
|
|
13
|
+
- Baseline del documento fuente para actualización incremental
|
|
14
|
+
- Extracción general de contenido de documentos
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Análisis de PDF: Estrategia de Tres Capas + Detección Por Página
|
|
19
|
+
|
|
20
|
+
### Resumen General
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
PDF de entrada
|
|
24
|
+
│
|
|
25
|
+
▼
|
|
26
|
+
Extracción de texto por página con pymupdf (costo cero)
|
|
27
|
+
│
|
|
28
|
+
├── Texto de página > 30 caracteres → ✅ Convertir directamente a Markdown (Capa 1)
|
|
29
|
+
│
|
|
30
|
+
└── Texto de página ≤ 30 caracteres (en blanco / trazos vectoriales / escaneado)
|
|
31
|
+
│
|
|
32
|
+
├── Por defecto → Análisis semántico con Claude Vision (Capa 2)
|
|
33
|
+
│
|
|
34
|
+
└── Vision no disponible / Presupuesto de tokens insuficiente → Tesseract OCR (Capa 3)
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Paso 1: Detección de Tipo Por Página
|
|
38
|
+
|
|
39
|
+
**Principio clave**: Detectar a nivel de "página", no del documento completo. Un solo PDF puede mezclar páginas de texto digital y páginas de imágenes escaneadas.
|
|
40
|
+
|
|
41
|
+
```python
|
|
42
|
+
import fitz # pymupdf
|
|
43
|
+
|
|
44
|
+
doc = fitz.open(pdf_path)
|
|
45
|
+
total_pages = len(doc)
|
|
46
|
+
page_results = {}
|
|
47
|
+
|
|
48
|
+
for i in range(total_pages):
|
|
49
|
+
page = doc[i]
|
|
50
|
+
text = page.get_text("text").strip()
|
|
51
|
+
|
|
52
|
+
if len(text) > 30:
|
|
53
|
+
# Capa 1: Texto digital, extraer directamente
|
|
54
|
+
page_results[i] = {"type": "digital", "text": text}
|
|
55
|
+
else:
|
|
56
|
+
# Necesita Vision u OCR
|
|
57
|
+
page_results[i] = {"type": "needs_vision", "text": None}
|
|
58
|
+
|
|
59
|
+
digital_count = sum(1 for p in page_results.values() if p["type"] == "digital")
|
|
60
|
+
vision_count = total_pages - digital_count
|
|
61
|
+
|
|
62
|
+
print(f"Análisis PDF: {total_pages} páginas, {digital_count} extraíbles directamente, {vision_count} requieren análisis visual")
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Paso 2: Estrategia para Archivos Grandes
|
|
66
|
+
|
|
67
|
+
| Condición | Estrategia |
|
|
68
|
+
|-----------|-----------|
|
|
69
|
+
| Todas las páginas son digitales (vision_count = 0) | Extraer todas las páginas directamente, costo cero |
|
|
70
|
+
| vision_count ≤ 20 | Leer todas las páginas que necesitan análisis visual de una vez con Claude Vision |
|
|
71
|
+
| vision_count > 20 | Procesar en lotes (≤ 20 páginas cada uno), fusionar resultados |
|
|
72
|
+
| Total de páginas > 50 y vision_count > 20 | Preguntar al usuario si desea analizar el documento completo o especificar un rango de páginas |
|
|
73
|
+
|
|
74
|
+
**Prompt de confirmación para archivos grandes (>50 páginas)**:
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
📄 Este PDF tiene {total_pages} páginas:
|
|
78
|
+
• {digital_count} páginas se pueden extraer directamente (gratis)
|
|
79
|
+
• {vision_count} páginas requieren análisis visual (consume tokens de Vision)
|
|
80
|
+
|
|
81
|
+
Por favor elige:
|
|
82
|
+
1️⃣ Análisis completo del documento (completo pero consume más tokens)
|
|
83
|
+
2️⃣ Analizar solo páginas específicas (ingresa rangos de páginas, p.ej. 1-10,15,20-25)
|
|
84
|
+
3️⃣ Extraer solo páginas directamente extraíbles (omitir páginas escaneadas/vectoriales)
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Paso 3: Capa 1 — Extracción Directa con pymupdf
|
|
88
|
+
|
|
89
|
+
```python
|
|
90
|
+
def extract_digital_pages(doc, page_results):
|
|
91
|
+
"""Extraer todas las páginas de texto digital"""
|
|
92
|
+
markdown_parts = []
|
|
93
|
+
for i, result in sorted(page_results.items()):
|
|
94
|
+
if result["type"] == "digital":
|
|
95
|
+
markdown_parts.append(f"<!-- Page {i+1} -->\n{result['text']}")
|
|
96
|
+
return "\n\n".join(markdown_parts)
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### Paso 4: Capa 2 — Análisis Semántico con Claude Vision
|
|
100
|
+
|
|
101
|
+
Para páginas de tipo `needs_vision`, primero renderizar a PNG con pymupdf, luego leer con la herramienta Read de Claude.
|
|
102
|
+
|
|
103
|
+
**Renderizar a imagen**:
|
|
104
|
+
```python
|
|
105
|
+
def render_pages_to_png(doc, page_indices, dpi=300):
|
|
106
|
+
"""Renderizar páginas especificadas a PNG"""
|
|
107
|
+
output_files = []
|
|
108
|
+
for i in page_indices:
|
|
109
|
+
page = doc[i]
|
|
110
|
+
pix = page.get_pixmap(dpi=dpi)
|
|
111
|
+
output_path = f"/tmp/pdf-page-{i+1:04d}.png"
|
|
112
|
+
pix.save(output_path)
|
|
113
|
+
output_files.append((i, output_path))
|
|
114
|
+
return output_files
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
**Prompt de análisis con Claude Vision**:
|
|
118
|
+
|
|
119
|
+
Para cada página que requiere análisis visual (o lote), después de leer el PNG con la herramienta Read, convertir usando el siguiente prompt:
|
|
120
|
+
|
|
121
|
+
```
|
|
122
|
+
Estás leyendo la página {page_num}/{total_pages} de un documento PDF.
|
|
123
|
+
Por favor convierte el contenido de esta página precisamente a formato Markdown.
|
|
124
|
+
|
|
125
|
+
Reglas estrictas:
|
|
126
|
+
1. Tablas → Tabla Markdown (preservar todas las columnas, filas y alineación)
|
|
127
|
+
2. Encabezados → # / ## / ### correspondiente al nivel original
|
|
128
|
+
3. Listas numeradas → 1. 2. 3. (preservar numeración original)
|
|
129
|
+
4. Viñetas → - o •
|
|
130
|
+
5. Negrita/Cursiva → **negrita** / *cursiva*
|
|
131
|
+
6. Gráficos/Imágenes → > [Gráfico: descripción breve]
|
|
132
|
+
7. Encabezados de página, pies de página, números de página → Ignorar
|
|
133
|
+
8. Números, fechas, nombres, números de cuenta → Deben ser 100% precisos, no adivinar
|
|
134
|
+
9. No agregar contenido que no esté presente en el original
|
|
135
|
+
10. No traducir — preservar el idioma original
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
> **Por qué esto es mejor que OCR**: Claude entiende la "estructura semántica" de las tablas (qué fila es el encabezado, qué columnas están alineadas), mientras que Tesseract solo puede reconocer caracteres uno por uno e intentar reconstruir tablas con reglas, lo cual frecuentemente falla.
|
|
139
|
+
|
|
140
|
+
### Paso 5: Capa 3 — Fallback con Tesseract OCR
|
|
141
|
+
|
|
142
|
+
Usar solo en las siguientes situaciones:
|
|
143
|
+
- El usuario solicita explícitamente conservar tokens
|
|
144
|
+
- Claude Vision no está disponible (limitaciones de API, etc.)
|
|
145
|
+
- Entorno offline
|
|
146
|
+
|
|
147
|
+
```python
|
|
148
|
+
import subprocess
|
|
149
|
+
from PIL import Image
|
|
150
|
+
|
|
151
|
+
def ocr_page(png_path, lang="chi_tra+eng"):
|
|
152
|
+
"""Tesseract OCR página individual"""
|
|
153
|
+
# macOS tesseract puede no leer PNG directamente, convertir a TIFF o usar stdin
|
|
154
|
+
tiff_path = png_path.replace('.png', '.tiff')
|
|
155
|
+
Image.open(png_path).save(tiff_path)
|
|
156
|
+
|
|
157
|
+
result = subprocess.run(
|
|
158
|
+
['tesseract', 'stdin', 'stdout', '-l', lang],
|
|
159
|
+
stdin=open(tiff_path, 'rb'),
|
|
160
|
+
capture_output=True, text=True, timeout=120
|
|
161
|
+
)
|
|
162
|
+
return result.stdout
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
**Notas sobre Tesseract (de experiencia práctica)**:
|
|
166
|
+
- En macOS, tesseract puede no leer archivos PNG directamente — usar pipe `stdin` o convertir a TIFF primero
|
|
167
|
+
- Resolución recomendada: 300dpi
|
|
168
|
+
- El paquete de idiomas `chi_tra+eng` reconoce tanto chino tradicional como inglés simultáneamente
|
|
169
|
+
- Los resultados de OCR necesitan post-procesamiento: fusionar líneas rotas, reparar estructura de tablas
|
|
170
|
+
|
|
171
|
+
### Paso 6: Fusionar Todas las Páginas
|
|
172
|
+
|
|
173
|
+
```python
|
|
174
|
+
def merge_all_pages(digital_md, vision_md_list):
|
|
175
|
+
"""Fusionar el Markdown de todas las páginas en orden de página"""
|
|
176
|
+
all_pages = {}
|
|
177
|
+
# páginas digitales
|
|
178
|
+
for page_num, md in digital_md.items():
|
|
179
|
+
all_pages[page_num] = md
|
|
180
|
+
# páginas vision/ocr
|
|
181
|
+
for page_num, md in vision_md_list.items():
|
|
182
|
+
all_pages[page_num] = md
|
|
183
|
+
|
|
184
|
+
# Ordenar por número de página y fusionar
|
|
185
|
+
final_md = []
|
|
186
|
+
for i in sorted(all_pages.keys()):
|
|
187
|
+
final_md.append(all_pages[i])
|
|
188
|
+
|
|
189
|
+
return "\n\n---\n\n".join(final_md)
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
### Paso 7: Output y Notificación al Usuario
|
|
193
|
+
|
|
194
|
+
```
|
|
195
|
+
📄 Análisis de PDF completado:
|
|
196
|
+
• Total de páginas: {total_pages}
|
|
197
|
+
• Extracción directa: {digital_count} páginas (pymupdf)
|
|
198
|
+
• Análisis visual: {vision_count} páginas (Claude Vision)
|
|
199
|
+
• Output: {output_path} (Markdown, {word_count} palabras)
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
## Análisis de DOCX
|
|
205
|
+
|
|
206
|
+
```bash
|
|
207
|
+
pandoc "{input_path}" -t markdown -o "/tmp/parsed-{timestamp}.md" --wrap=none
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
**Post-procesamiento**:
|
|
211
|
+
- Eliminar líneas en blanco excesivas generadas por Pandoc
|
|
212
|
+
- Verificar que el formato de tablas sea correcto
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
## Análisis de PPTX
|
|
217
|
+
|
|
218
|
+
```bash
|
|
219
|
+
pandoc "{input_path}" -t markdown -o "/tmp/parsed-{timestamp}.md" --wrap=none
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
> Pandoc convierte cada diapositiva en una sección con encabezado `##`.
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
## Análisis de HTML
|
|
227
|
+
|
|
228
|
+
```bash
|
|
229
|
+
pandoc "{input_path}" -f html -t markdown -o "/tmp/parsed-{timestamp}.md" --wrap=none
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
## Análisis de Imágenes
|
|
235
|
+
|
|
236
|
+
Usar directamente la herramienta Read de Claude para leer la imagen, luego convertir a Markdown usando el prompt de análisis de Vision.
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
## Coordinación con rules-file-integration.md
|
|
241
|
+
|
|
242
|
+
Cuando `rules-file-integration.md` detecta los siguientes escenarios, se carga esta regla:
|
|
243
|
+
|
|
244
|
+
| Escenario | Acción |
|
|
245
|
+
|-----------|--------|
|
|
246
|
+
| El usuario sube un PDF durante Extensión de Funcionalidades S1 | Cargar esta regla → Analizar PDF → Extraer contexto del sistema existente |
|
|
247
|
+
| El usuario sube un PRD antiguo durante Revisión S1 | Cargar esta regla → Analizar PDF → Usar como baseline de revisión |
|
|
248
|
+
| El usuario usa el comando `/parse` | Cargar esta regla → Analizar archivo especificado → Output en Markdown |
|
|
249
|
+
| El usuario sube un reporte de mercado en PDF | Cargar esta regla → Extraer información clave → Integrar en el paso correspondiente |
|
|
250
|
+
|
|
251
|
+
### Identificación de Documento Fuente
|
|
252
|
+
|
|
253
|
+
Después de completar el análisis, si el archivo se identifica como un "documento fuente" (PRD, especificación, etc.), marcarlo automáticamente:
|
|
254
|
+
|
|
255
|
+
```
|
|
256
|
+
📎 Documento fuente detectado — la salida final será una actualización incremental basada en este archivo.
|
|
257
|
+
Estructura del documento: {section_count} secciones, {table_count} tablas
|
|
258
|
+
Convenciones de formato: [características de formato identificadas]
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
La estructura del documento se registra para uso de `rules-export-document.md` durante la salida final.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# 🏢 Ajustes de Diferenciación B2B / B2C
|
|
2
|
+
|
|
3
|
+
> Se carga después de confirmar el tipo de producto. Claude aplica automáticamente los siguientes ajustes dentro de cada framework.
|
|
4
|
+
|
|
5
|
+
| Framework | Ajustes B2C | Ajustes B2B |
|
|
6
|
+
|-----------|------------|------------|
|
|
7
|
+
| **Persona** | Segmentar por motivaciones/hábitos personales | Distinguir entre "tomador de decisión de compra" y "usuario final real" como dos tipos de Persona; agregar campos "tamaño de organización" y "proceso de adquisición" |
|
|
8
|
+
| **JTBD** | Enfoque en jobs emocionales y sociales personales | Agregar "jobs a nivel organizacional": ¿Qué objetivo ayuda a lograr a la empresa? ¿Qué trabajo realiza el individuo dentro de la organización? |
|
|
9
|
+
| **Evaluación de PMF** | Principalmente basada en DAU/MAU, tasa de retención, Sean Ellis Score | Principalmente basada en "clientes que pagan + tasa de expansión + NPS"; Nivel 1 = 3-5 clientes que pagan |
|
|
10
|
+
| **Aha Moment** | Valor central experimentado durante el primer uso | Puede no surgir hasta el onboarding/período de prueba; diseñar una métrica "Time-to-Value" |
|
|
11
|
+
| **MVP** | Puede ser un producto ligero completo | Puede necesitar ser un Piloto (un despliegue personalizado para un cliente específico) |
|
|
12
|
+
| **GTM** | Principalmente crecimiento liderado por producto (PLG) o impulsado por comunidad | Principalmente impulsado por ventas o por canal de aliados |
|
|
13
|
+
| **Precios** | Freemium / Suscripción / Basado en uso | Contrato anual / Por asiento / Basado en uso / Cotización personalizada |
|
|
14
|
+
| **North Star** | Actividad de usuarios o conteo de completación de acción central | ARR, Net Revenue Retention, Cuentas Activas |
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# 🔁 Persistencia de Progreso y Recuperación de Interrupciones
|
|
2
|
+
|
|
3
|
+
> Se carga cuando el usuario dice "pausar," "guardar," o cuando el skill verifica progreso al inicio.
|
|
4
|
+
|
|
5
|
+
## Formato del Archivo de Progreso
|
|
6
|
+
|
|
7
|
+
Después de completar cada paso, crear o actualizar `.product-playbook-progress.md` en el directorio del proyecto:
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
# Guardado de Progreso de Product Playbook
|
|
11
|
+
|
|
12
|
+
- Modo: [Modo Rápido / Modo Completo / ...]
|
|
13
|
+
- Tipo de producto: [B2C / B2B / ...]
|
|
14
|
+
- Descripción del producto: [Descripción del producto del usuario]
|
|
15
|
+
- Progreso actual: S[X] / S[Y]
|
|
16
|
+
- Última actualización: [timestamp]
|
|
17
|
+
|
|
18
|
+
## Pasos Completados
|
|
19
|
+
|
|
20
|
+
### S1: [Nombre del paso] ✅
|
|
21
|
+
[Output central de este paso — retener suficiente detalle para no necesitar rehacerlo al recuperar]
|
|
22
|
+
|
|
23
|
+
### S2: [Nombre del paso] ✅
|
|
24
|
+
[Igual que arriba]
|
|
25
|
+
|
|
26
|
+
## Pasos Pendientes
|
|
27
|
+
- S3: [Nombre del paso]
|
|
28
|
+
- S4: [Nombre del paso]
|
|
29
|
+
- ...
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Ejemplo de Modo Extensión de Funcionalidad
|
|
33
|
+
```markdown
|
|
34
|
+
Modo: Extensión de Funcionalidad
|
|
35
|
+
Paso: S2/S4
|
|
36
|
+
S1: Problema + contexto del sistema existente ✅
|
|
37
|
+
S2: Tres soluciones paralelas + recomendación de IA ▶️
|
|
38
|
+
S3: Evaluación de riesgos ⬜
|
|
39
|
+
S4: Alcance de ejecución ⬜
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Reglas de Activación
|
|
43
|
+
|
|
44
|
+
1. **Auto-guardado**: Después de completar cada paso y ser confirmado por el usuario, actualizar inmediatamente el archivo de progreso
|
|
45
|
+
2. **Verificar al inicio**: Cuando el skill se activa, primero verificar si `.product-playbook-progress.md` existe. Si existe, mostrar:
|
|
46
|
+
```
|
|
47
|
+
Progreso no terminado de planificación de producto detectado ([nombre del modo], S[X]/S[Y]):
|
|
48
|
+
1️⃣ Continuar — Retomar desde S[X]
|
|
49
|
+
2️⃣ Empezar de nuevo — Limpiar progreso anterior y comenzar desde cero
|
|
50
|
+
(Ingresa 1 o 2)
|
|
51
|
+
```
|
|
52
|
+
3. **Comando de pausa**: Cuando el usuario dice "pausar," "hacer otra cosa primero," o "guardar," confirmar que el archivo de progreso ha sido actualizado y responder: "Progreso guardado en .product-playbook-progress.md (S[X]/S[Y]). Será detectado automáticamente la próxima vez que inicies el skill en este proyecto."
|
|
53
|
+
4. **Limpieza al completar**: Después de que todo el flujo esté completo y los documentos finales producidos, preguntar al usuario si desea eliminar el archivo de progreso
|
|
54
|
+
6. **Recordatorio de control de versiones**: Cuando `.product-playbook-progress.md` se crea por primera vez, recordar al usuario: "⚠️ Recomendamos agregar `.product-playbook-progress.md` a `.gitignore` — este archivo puede contener información sensible de estrategia de producto."
|
|
55
|
+
5. **Guardado de interrupción**: Cuando se detecta un prompt no relacionado durante el flujo (ver reglas de manejo de interrupciones en SKILL.md), guardar progreso incluso si el paso actual no está completo. Usar 🔶 (en progreso) en lugar de ✅ para el paso actual en el formato de guardado, y preservar el contenido parcialmente producido:
|
|
56
|
+
```
|
|
57
|
+
### S[X]: [Nombre del paso] 🔶 (en progreso, parcialmente completado)
|
|
58
|
+
[Contenido parcialmente producido]
|
|
59
|
+
⚠️ Este paso no está completo — retomar desde aquí al recuperar
|
|
60
|
+
```
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# 🚀 Secuencia de Pasos del Modo Rápido (3 Pasos + Output Final)
|
|
2
|
+
|
|
3
|
+
> Este archivo es la definición autoritativa de pasos para el Modo Rápido. Cargado por el despachador central de SKILL.md.
|
|
4
|
+
|
|
5
|
+
## Secuencia de Pasos
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
S1. Declaración JTBD → Leer references/02b-jtbd.md
|
|
9
|
+
S2. PR-FAQ → Leer references/04a-prfaq.md
|
|
10
|
+
S3. North Star Metric + Aha Moment → Leer references/05a-northstar-aha.md
|
|
11
|
+
────
|
|
12
|
+
Output Final → Resumen de dirección de una página
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Instrucciones de Carga de Referencias
|
|
16
|
+
|
|
17
|
+
Al entrar a cada paso, lee el archivo de referencia correspondiente:
|
|
18
|
+
|
|
19
|
+
| Paso | Archivo de Referencia |
|
|
20
|
+
|------|----------------------|
|
|
21
|
+
| S1 | `references/02b-jtbd.md` |
|
|
22
|
+
| S2 | `references/04a-prfaq.md` |
|
|
23
|
+
| S3 | `references/05a-northstar-aha.md` |
|
|
24
|
+
|
|
25
|
+
## Formato del Output Final
|
|
26
|
+
|
|
27
|
+
**Resumen de dirección de una página**: Problema → Solución → Definición de Éxito, una estructura de tres partes adecuada para briefings rápidos o sincronizaciones de equipo.
|
|
28
|
+
|
|
29
|
+
Al completar, sigue `references/rules-end-of-flow.md` para ejecutar las reglas de fin de flujo. El Modo Rápido solo pregunta si se necesita una presentación — no ofrece PRD ni paquetes de handoff de desarrollo (el contenido no es lo suficientemente comprehensivo).
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# 🔄 Secuencia de Pasos del Modo Revisión (12 Pasos + Output Final)
|
|
2
|
+
|
|
3
|
+
> Este archivo es la definición autoritativa de pasos para el Modo Revisión. Cargado por el despachador central de SKILL.md.
|
|
4
|
+
|
|
5
|
+
## Secuencia de Pasos
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
Fase 0: Análisis del Estado Actual
|
|
9
|
+
S1. Revisión del producto existente (resumen de datos de usuario + métricas centrales + problemas conocidos + estado de seguridad)
|
|
10
|
+
S2. Re-examinar JTBD de usuarios existentes (¿qué jobs se están haciendo bien? ¿cuáles no?)
|
|
11
|
+
|
|
12
|
+
Fase 1: Convergencia del Problema
|
|
13
|
+
S3. Recopilación de puntos de dolor de usuario (análisis de retención/churn + síntesis de feedback de usuarios + datos de comportamiento)
|
|
14
|
+
S4. Tabla de resumen de puntos de dolor → cargar references/03-define.md → 2.1
|
|
15
|
+
S5. Re-evaluación de posicionamiento → cargar references/03-define.md → 2.2 (enfoque: ¿el posicionamiento necesita ajuste?)
|
|
16
|
+
S6. Reformulación de preguntas HMW → cargar references/03-define.md → 2.3
|
|
17
|
+
S7. Tabla de evaluación de oportunidades → cargar references/03-define.md → 2.4
|
|
18
|
+
|
|
19
|
+
Fase 2: Diseño de Solución
|
|
20
|
+
S8. PR-FAQ → cargar references/04a-prfaq.md (describir la experiencia post-revisión)
|
|
21
|
+
S9. Pre-mortem → cargar references/04b-solutions.md → 3.3
|
|
22
|
+
S10. Alcance MVP + Lista de No Hacer → cargar references/04c-mvp.md (enfoque: qué cambiar / qué no cambiar)
|
|
23
|
+
|
|
24
|
+
Fase 3: Validación
|
|
25
|
+
S11. North Star + Aha Moment → cargar references/05a-northstar-aha.md (comparar métricas pre- vs. post-revisión)
|
|
26
|
+
S12. Plan de validación de hipótesis → cargar references/05c-validation-spec.md
|
|
27
|
+
────
|
|
28
|
+
Output Final → Resumen de spec de producto (edición de revisión)
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### Pre-paso S1: Carga de Contexto de Producto
|
|
32
|
+
|
|
33
|
+
Antes de entrar a S1, cargar `references/rules-context.md` y verificar `.product-context.md`:
|
|
34
|
+
|
|
35
|
+
- **Contexto completo disponible (Escenario 1)**: Auto-rellenar nivel de PMF, North Star, puntos de dolor conocidos, estado de seguridad, y las 3 entradas más recientes del Historial de Decisiones. La guía de S1 cambia a **modo delta**: "La última vez que evaluamos, tu nivel de PMF era [X] y tu North Star metric era [Y]. ¿Ha cambiado algo? ¿Cuáles son los últimos números de DAU/MAU y retención?" — El historial de decisiones y puntos de dolor recopilados previamente no necesitan re-recopilarse.
|
|
36
|
+
- **Sin contexto disponible (Escenario 2)**: Activar Context Bootstrap (`rules-context.md` Sección 4, Ronda 1 + 3), luego proceder a la recopilación estándar de datos de S1 abajo.
|
|
37
|
+
- **Contexto parcial (Escenario 3)**: Traer historial de cambios de features del Historial de Decisiones (saber qué módulos fueron cambiados y qué riesgos se identificaron), pero preguntar sobre estrategia general del producto y métricas (el trabajo anterior solo cubrió expansión de features y carece de una visión holística).
|
|
38
|
+
|
|
39
|
+
### Guía Estándar de S1
|
|
40
|
+
|
|
41
|
+
> El S1 del Modo Revisión pregunta proactivamente al usuario que proporcione datos del producto existente: DAU/MAU, tasas de retención, feedback clave de usuarios, decisiones de versiones anteriores, etc. Si el contexto ya pre-llenó algunas respuestas, confirmar en lugar de re-recopilar.
|
|
42
|
+
> S1 también recopila el estado de seguridad actual: mecanismos de autenticación/autorización existentes, vulnerabilidades de seguridad conocidas o deuda técnica, incidentes de seguridad recientes. Esta información afecta la evaluación de riesgos de la revisión y el Pre-mortem.
|
|
43
|
+
|
|
44
|
+
### Ruta Rápida
|
|
45
|
+
|
|
46
|
+
Cuando el usuario proporciona datos suficientes en S1 (incluyendo feedback de usuarios, métricas y puntos de dolor), S4–S7 (puntos de dolor → posicionamiento → HMW → evaluación de oportunidades) pueden producirse en un solo turno de conversación, requiriendo solo una confirmación en lugar de cuatro. Condición de activación: la lista de puntos de dolor recopilada en S3 ya tiene priorización clara y soporte de datos. Las reglas de Hard Gate permanecen sin cambios — el output de cada paso debe presentarse completamente; solo la cadencia de confirmación se acelera.
|
|
47
|
+
|
|
48
|
+
## Instrucciones de Carga de Referencias
|
|
49
|
+
|
|
50
|
+
| Paso | Archivo de Referencia |
|
|
51
|
+
|------|----------------------|
|
|
52
|
+
| S1–S3 | No se necesita referencia externa (guiar al usuario para proporcionar datos directamente) |
|
|
53
|
+
| S4–S7 | `references/03-define.md` |
|
|
54
|
+
| S8 | `references/04a-prfaq.md` |
|
|
55
|
+
| S9 | `references/04b-solutions.md` |
|
|
56
|
+
| S10 | `references/04c-mvp.md` |
|
|
57
|
+
| S11 | `references/05a-northstar-aha.md` |
|
|
58
|
+
| S12 + Output Final | `references/05c-validation-spec.md` |
|
|
59
|
+
|
|
60
|
+
## Formato del Output Final
|
|
61
|
+
|
|
62
|
+
**Resumen de Spec de Producto de Revisión**: Comparación antes/después + qué cambiar / qué no cambiar + métricas de éxito
|
|
63
|
+
|
|
64
|
+
Al completar, ejecuta reglas de fin de flujo según `references/rules-end-of-flow.md`.
|