oh-my-agent-commandcode 0.0.0-stage → 20.38.4
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/README.md +35 -2
- package/filter-test-output.sh +52 -0
- package/mods/oma.ts +347 -0
- package/package.json +30 -4
- package/skills/_shared/conditional/experiment-ledger.md +28 -0
- package/skills/_shared/conditional/exploration-loop.md +22 -0
- package/skills/_shared/conditional/quality-score.md +33 -0
- package/skills/_shared/core/anti-ai-prose.md +191 -0
- package/skills/_shared/core/api-contracts/README.md +28 -0
- package/skills/_shared/core/api-contracts/template.md +90 -0
- package/skills/_shared/core/clarification-protocol.md +23 -0
- package/skills/_shared/core/code-intelligence.md +46 -0
- package/skills/_shared/core/collaboration-policy.md +28 -0
- package/skills/_shared/core/common-checklist.md +28 -0
- package/skills/_shared/core/context-budget.md +22 -0
- package/skills/_shared/core/context-loading.md +34 -0
- package/skills/_shared/core/difficulty-guide.md +26 -0
- package/skills/_shared/core/execution-policy.md +31 -0
- package/skills/_shared/core/lessons-learned.md +33 -0
- package/skills/_shared/core/prompt-structure.md +18 -0
- package/skills/_shared/core/quality-principles.md +11 -0
- package/skills/_shared/core/session-metrics.md +35 -0
- package/skills/_shared/core/skill-routing.md +39 -0
- package/skills/_shared/core/test-approach.md +54 -0
- package/skills/_shared/core/vendor-detection.md +52 -0
- package/skills/_shared/runtime/memory-protocol.md +118 -0
- package/skills/_shared/runtime/result-contract.md +64 -0
- package/skills/_shared/ui-interaction-quality.md +133 -0
- package/skills/oma-academic-writing/SKILL.md +181 -0
- package/skills/oma-academic-writing/resources/abstract-guide.md +51 -0
- package/skills/oma-academic-writing/resources/academic-verb-tiers.md +42 -0
- package/skills/oma-academic-writing/resources/anti-ai-checklist.md +52 -0
- package/skills/oma-academic-writing/resources/hedging-guide.md +132 -0
- package/skills/oma-academic-writing/resources/sentence-structure-reference.md +151 -0
- package/skills/oma-architecture/SKILL.md +203 -0
- package/skills/oma-architecture/resources/api-evolution.md +41 -0
- package/skills/oma-architecture/resources/checklist.md +42 -0
- package/skills/oma-architecture/resources/execution-protocol.md +115 -0
- package/skills/oma-architecture/resources/methodology-selection.md +92 -0
- package/skills/oma-architecture/resources/migration-patterns.md +28 -0
- package/skills/oma-architecture/resources/output-templates.md +111 -0
- package/skills/oma-architecture/resources/stakeholder-synthesis.md +80 -0
- package/skills/oma-backend/SKILL.md +202 -0
- package/skills/oma-backend/resources/checklist.md +45 -0
- package/skills/oma-backend/resources/error-playbook.md +97 -0
- package/skills/oma-backend/resources/execution-protocol.md +39 -0
- package/skills/oma-backend/resources/orm-reference.md +61 -0
- package/skills/oma-backend/variants/node/api-template.ts +315 -0
- package/skills/oma-backend/variants/node/snippets.md +475 -0
- package/skills/oma-backend/variants/node/stack.yaml +21 -0
- package/skills/oma-backend/variants/node/tech-stack.md +33 -0
- package/skills/oma-backend/variants/python/api-template.py +378 -0
- package/skills/oma-backend/variants/python/snippets.md +199 -0
- package/skills/oma-backend/variants/python/stack.yaml +18 -0
- package/skills/oma-backend/variants/python/tech-stack.md +45 -0
- package/skills/oma-backend/variants/rust/api-template.rs +635 -0
- package/skills/oma-backend/variants/rust/snippets.md +471 -0
- package/skills/oma-backend/variants/rust/stack.yaml +20 -0
- package/skills/oma-backend/variants/rust/tech-stack.md +36 -0
- package/skills/oma-backend/variants/stack.schema.json +73 -0
- package/skills/oma-brainstorm/SKILL.md +166 -0
- package/skills/oma-brainstorm/resources/triz-lite.md +117 -0
- package/skills/oma-coordination/SKILL.md +171 -0
- package/skills/oma-db/SKILL.md +201 -0
- package/skills/oma-db/resources/anti-patterns.md +177 -0
- package/skills/oma-db/resources/checklist.md +67 -0
- package/skills/oma-db/resources/document-templates.md +107 -0
- package/skills/oma-db/resources/error-playbook.md +50 -0
- package/skills/oma-db/resources/examples.md +170 -0
- package/skills/oma-db/resources/execution-protocol.md +127 -0
- package/skills/oma-db/resources/iso-controls.md +98 -0
- package/skills/oma-db/resources/migration-playbook.md +93 -0
- package/skills/oma-db/resources/query-tuning.md +57 -0
- package/skills/oma-db/resources/vector-db.md +159 -0
- package/skills/oma-debug/SKILL.md +146 -0
- package/skills/oma-debug/resources/bug-report-template.md +327 -0
- package/skills/oma-debug/resources/checklist.md +31 -0
- package/skills/oma-debug/resources/common-patterns.md +734 -0
- package/skills/oma-debug/resources/debugging-checklist.md +364 -0
- package/skills/oma-debug/resources/error-playbook.md +94 -0
- package/skills/oma-debug/resources/execution-protocol.md +40 -0
- package/skills/oma-design/SKILL.md +135 -0
- package/skills/oma-design/resources/asset-strategy.md +34 -0
- package/skills/oma-design/resources/checklist.md +63 -0
- package/skills/oma-design/resources/data-grid.md +48 -0
- package/skills/oma-design/resources/design-md-spec.md +107 -0
- package/skills/oma-design/resources/design-tokens.md +53 -0
- package/skills/oma-design/resources/error-playbook.md +18 -0
- package/skills/oma-design/resources/execution-protocol.md +95 -0
- package/skills/oma-design/resources/external-design-skills.md +130 -0
- package/skills/oma-design/resources/getdesign-fetcher.md +104 -0
- package/skills/oma-design/resources/product-interface-review.md +59 -0
- package/skills/oma-design/resources/redesign-protocol.md +52 -0
- package/skills/oma-design/resources/stitch-integration.md +244 -0
- package/skills/oma-dev-workflow/SKILL.md +375 -0
- package/skills/oma-dev-workflow/resources/affected-checks.py +58 -0
- package/skills/oma-dev-workflow/resources/api-workflows.md +58 -0
- package/skills/oma-dev-workflow/resources/database-patterns.md +107 -0
- package/skills/oma-dev-workflow/resources/i18n-patterns.md +63 -0
- package/skills/oma-dev-workflow/resources/release-coordination.md +240 -0
- package/skills/oma-dev-workflow/resources/tooling-profiles.md +217 -0
- package/skills/oma-dev-workflow/resources/troubleshooting.md +78 -0
- package/skills/oma-dev-workflow/resources/validation-pipeline.md +246 -0
- package/skills/oma-docs/SKILL.md +77 -0
- package/skills/oma-docs/resources/commands.md +76 -0
- package/skills/oma-explanation/SKILL.md +212 -0
- package/skills/oma-explanation/resources/document-structure.md +115 -0
- package/skills/oma-explanation/resources/draft-format.md +199 -0
- package/skills/oma-explanation/resources/html-contract.md +102 -0
- package/skills/oma-frontend/SKILL.md +227 -0
- package/skills/oma-frontend/resources/angular-rules.md +110 -0
- package/skills/oma-frontend/resources/checklist.md +76 -0
- package/skills/oma-frontend/resources/error-playbook.md +125 -0
- package/skills/oma-frontend/resources/execution-protocol.md +46 -0
- package/skills/oma-frontend/resources/snippets.md +354 -0
- package/skills/oma-frontend/resources/specialized-visual-implementation.md +193 -0
- package/skills/oma-frontend/resources/tailwind-rules.md +83 -0
- package/skills/oma-frontend/resources/tech-stack.md +156 -0
- package/skills/oma-hwp/SKILL.md +166 -0
- package/skills/oma-hwp/config/hwp-config.yaml +35 -0
- package/skills/oma-hwp/resources/balanced-tables.ts +39 -0
- package/skills/oma-hwp/resources/execution-protocol.md +145 -0
- package/skills/oma-hwp/resources/flatten-tables.ts +101 -0
- package/skills/oma-hwp/resources/package.json +13 -0
- package/skills/oma-hwp/resources/troubleshooting.md +70 -0
- package/skills/oma-hwp/resources/tsconfig.json +10 -0
- package/skills/oma-hwp/resources/turndown-plugin-gfm.d.ts +9 -0
- package/skills/oma-image/SKILL.md +142 -0
- package/skills/oma-image/config/image-config.yaml +70 -0
- package/skills/oma-image/resources/checklist.md +18 -0
- package/skills/oma-image/resources/execution-protocol.md +117 -0
- package/skills/oma-image/resources/invocation.md +105 -0
- package/skills/oma-image/resources/prompt-tips.md +71 -0
- package/skills/oma-image/resources/vendor-matrix.md +90 -0
- package/skills/oma-market/SKILL.md +142 -0
- package/skills/oma-market/resources/checklist.md +12 -0
- package/skills/oma-market/resources/error-playbook.md +12 -0
- package/skills/oma-market/resources/execution-protocol.md +60 -0
- package/skills/oma-market/resources/frameworks/pestel.md +101 -0
- package/skills/oma-market/resources/frameworks/porters-5f.md +90 -0
- package/skills/oma-market/resources/frameworks/swot.md +61 -0
- package/skills/oma-market/resources/intent-rules.md +35 -0
- package/skills/oma-market/resources/output-laws.md +53 -0
- package/skills/oma-mobile/SKILL.md +168 -0
- package/skills/oma-mobile/resources/checklist.md +77 -0
- package/skills/oma-mobile/resources/error-playbook.md +198 -0
- package/skills/oma-mobile/resources/execution-protocol.md +47 -0
- package/skills/oma-mobile/resources/screen-template.dart +331 -0
- package/skills/oma-mobile/resources/screen-template.swift +239 -0
- package/skills/oma-mobile/resources/screen-template.tsx +179 -0
- package/skills/oma-mobile/resources/tech-stack.md +69 -0
- package/skills/oma-mobile/variants/README.md +45 -0
- package/skills/oma-mobile/variants/flutter/api-template.dart +461 -0
- package/skills/oma-mobile/variants/flutter/snippets.md +1353 -0
- package/skills/oma-mobile/variants/flutter/stack.yaml +21 -0
- package/skills/oma-mobile/variants/flutter/tech-stack.md +201 -0
- package/skills/oma-mobile/variants/kotlin-android/api-template.kt +182 -0
- package/skills/oma-mobile/variants/kotlin-android/snippets.md +871 -0
- package/skills/oma-mobile/variants/kotlin-android/stack.yaml +32 -0
- package/skills/oma-mobile/variants/kotlin-android/tech-stack.md +159 -0
- package/skills/oma-mobile/variants/react-native/api-template.ts +531 -0
- package/skills/oma-mobile/variants/react-native/snippets.md +1014 -0
- package/skills/oma-mobile/variants/react-native/stack.yaml +22 -0
- package/skills/oma-mobile/variants/react-native/tech-stack.md +192 -0
- package/skills/oma-mobile/variants/stack.schema.json +68 -0
- package/skills/oma-mobile/variants/swift-ios/api-template.swift +165 -0
- package/skills/oma-mobile/variants/swift-ios/snippets.md +1028 -0
- package/skills/oma-mobile/variants/swift-ios/stack.yaml +25 -0
- package/skills/oma-mobile/variants/swift-ios/tech-stack.md +174 -0
- package/skills/oma-observability/SKILL.md +225 -0
- package/skills/oma-observability/resources/anti-patterns.md +555 -0
- package/skills/oma-observability/resources/boundaries/cross-application.md +348 -0
- package/skills/oma-observability/resources/boundaries/multi-tenant.md +290 -0
- package/skills/oma-observability/resources/boundaries/release.md +372 -0
- package/skills/oma-observability/resources/boundaries/slo.md +225 -0
- package/skills/oma-observability/resources/checklist.md +123 -0
- package/skills/oma-observability/resources/examples.md +448 -0
- package/skills/oma-observability/resources/execution-protocol.md +166 -0
- package/skills/oma-observability/resources/incident-forensics.md +348 -0
- package/skills/oma-observability/resources/intent-rules.md +307 -0
- package/skills/oma-observability/resources/layers/L3-network.md +281 -0
- package/skills/oma-observability/resources/layers/L4-transport.md +299 -0
- package/skills/oma-observability/resources/layers/L7-application/crash-analytics.md +359 -0
- package/skills/oma-observability/resources/layers/L7-application/mobile-rum.md +278 -0
- package/skills/oma-observability/resources/layers/L7-application/waf.md +246 -0
- package/skills/oma-observability/resources/layers/L7-application/web-rum.md +350 -0
- package/skills/oma-observability/resources/layers/mesh.md +368 -0
- package/skills/oma-observability/resources/matrix.md +177 -0
- package/skills/oma-observability/resources/meta-observability.md +605 -0
- package/skills/oma-observability/resources/observability-as-code.md +666 -0
- package/skills/oma-observability/resources/signals/audit.md +310 -0
- package/skills/oma-observability/resources/signals/cost.md +303 -0
- package/skills/oma-observability/resources/signals/logs.md +263 -0
- package/skills/oma-observability/resources/signals/metrics.md +478 -0
- package/skills/oma-observability/resources/signals/privacy.md +351 -0
- package/skills/oma-observability/resources/signals/profiles.md +245 -0
- package/skills/oma-observability/resources/signals/traces.md +360 -0
- package/skills/oma-observability/resources/standards.md +214 -0
- package/skills/oma-observability/resources/transport/collector-topology.md +308 -0
- package/skills/oma-observability/resources/transport/otlp-grpc-vs-http.md +256 -0
- package/skills/oma-observability/resources/transport/sampling-recipes.md +297 -0
- package/skills/oma-observability/resources/transport/udp-statsd-mtu.md +167 -0
- package/skills/oma-observability/resources/vendor-categories.md +352 -0
- package/skills/oma-orchestration/SKILL.md +302 -0
- package/skills/oma-orchestration/config/cli-config.yaml +92 -0
- package/skills/oma-orchestration/resources/memory-schema.md +232 -0
- package/skills/oma-orchestration/resources/subagent-prompt-template.md +30 -0
- package/skills/oma-orchestration/scripts/parallel-run.sh +6 -0
- package/skills/oma-orchestration/scripts/spawn-agent.sh +5 -0
- package/skills/oma-orchestration/scripts/verify.sh +20 -0
- package/skills/oma-orchestration/templates/backend-task.md +19 -0
- package/skills/oma-orchestration/templates/debug-task.md +16 -0
- package/skills/oma-orchestration/templates/frontend-task.md +18 -0
- package/skills/oma-orchestration/templates/mobile-task.md +18 -0
- package/skills/oma-orchestration/templates/qa-task.md +16 -0
- package/skills/oma-orchestration/templates/tasks-example.yaml +15 -0
- package/skills/oma-pdf/SKILL.md +162 -0
- package/skills/oma-pdf/config/pdf-config.yaml +27 -0
- package/skills/oma-pdf/resources/execution-protocol.md +127 -0
- package/skills/oma-pm/SKILL.md +157 -0
- package/skills/oma-pm/resources/error-playbook.md +75 -0
- package/skills/oma-pm/resources/examples.md +439 -0
- package/skills/oma-pm/resources/execution-protocol.md +62 -0
- package/skills/oma-pm/resources/iso-planning.md +110 -0
- package/skills/oma-pm/resources/plan-phase-protocol.md +66 -0
- package/skills/oma-pm/resources/task-template.json +86 -0
- package/skills/oma-qa/SKILL.md +141 -0
- package/skills/oma-qa/resources/checklist.md +339 -0
- package/skills/oma-qa/resources/error-playbook.md +98 -0
- package/skills/oma-qa/resources/execution-protocol.md +169 -0
- package/skills/oma-qa/resources/iso-quality.md +82 -0
- package/skills/oma-qa/resources/verify-ship-protocol.md +116 -0
- package/skills/oma-recap/SKILL.md +245 -0
- package/skills/oma-recap/resources/output-formats.md +83 -0
- package/skills/oma-refactor/SKILL.md +184 -0
- package/skills/oma-refactor/resources/definition.md +108 -0
- package/skills/oma-refactor/resources/governance.md +33 -0
- package/skills/oma-refactor/resources/hotspots.py +44 -0
- package/skills/oma-refactor/resources/measurement.md +93 -0
- package/skills/oma-scholar/SKILL.md +276 -0
- package/skills/oma-scholar/config/scholar-config.yaml +79 -0
- package/skills/oma-scholar/resources/api-endpoints.md +174 -0
- package/skills/oma-scholar/resources/checklist.md +92 -0
- package/skills/oma-scholar/resources/execution-protocol.md +224 -0
- package/skills/oma-scholar/resources/fallback-providers.md +143 -0
- package/skills/oma-scholar/resources/setup-openalex.md +85 -0
- package/skills/oma-scholar/resources/sidecar-spec.md +341 -0
- package/skills/oma-scholar/resources/upstream-spec-cache.md +972 -0
- package/skills/oma-scm/SKILL.md +103 -0
- package/skills/oma-scm/resources/cm-operations.md +56 -0
- package/skills/oma-scm/resources/codeowners-playbook.md +45 -0
- package/skills/oma-scm/resources/conventional-commits.md +108 -0
- package/skills/oma-scm/resources/merge-risk.md +76 -0
- package/skills/oma-scm/resources/onboarding-risk-signals.md +71 -0
- package/skills/oma-search/SKILL.md +125 -0
- package/skills/oma-search/resources/checklist.md +36 -0
- package/skills/oma-search/resources/error-playbook.md +66 -0
- package/skills/oma-search/resources/examples.md +80 -0
- package/skills/oma-search/resources/execution-protocol.md +86 -0
- package/skills/oma-search/resources/intent-rules.md +47 -0
- package/skills/oma-search/resources/trust-registry.md +53 -0
- package/skills/oma-security/SKILL.md +172 -0
- package/skills/oma-security/resources/artex.md +108 -0
- package/skills/oma-security/resources/ci.md +134 -0
- package/skills/oma-security/resources/cisco-source.md +108 -0
- package/skills/oma-security/resources/deepsec-config.md +45 -0
- package/skills/oma-security/resources/deepsec-matchers.md +35 -0
- package/skills/oma-security/resources/deepsec-scanning.md +45 -0
- package/skills/oma-security/resources/deepsec-setup.md +41 -0
- package/skills/oma-security/resources/findings-contract.md +408 -0
- package/skills/oma-security/resources/mcp-scanning.md +122 -0
- package/skills/oma-security/resources/skill-scanning.md +106 -0
- package/skills/oma-security/resources/validation.md +71 -0
- package/skills/oma-skill-creation/SKILL.md +84 -0
- package/skills/oma-skill-creation/resources/prompt-evaluation.md +36 -0
- package/skills/oma-skill-creation/resources/ssl-lite-template.md +108 -0
- package/skills/oma-skill-creation/resources/validation-checklist.md +101 -0
- package/skills/oma-slide/SKILL.md +277 -0
- package/skills/oma-slide/resources/animation-patterns.md +245 -0
- package/skills/oma-slide/resources/assets/deck-stage.js +514 -0
- package/skills/oma-slide/resources/assets/viewport-base.css +257 -0
- package/skills/oma-slide/resources/canva-integration.md +203 -0
- package/skills/oma-slide/resources/checklist.md +46 -0
- package/skills/oma-slide/resources/design-doctrine.md +260 -0
- package/skills/oma-slide/resources/fixed-stage.md +232 -0
- package/skills/oma-slide/resources/generation-protocol.md +393 -0
- package/skills/oma-slide/resources/native-pptx.md +84 -0
- package/skills/oma-slide/resources/selection-index.json +461 -0
- package/skills/oma-slide/resources/style-presets.LICENSE +10 -0
- package/skills/oma-slide/resources/style-presets.md +520 -0
- package/skills/oma-tf-infra/SKILL.md +201 -0
- package/skills/oma-tf-infra/resources/checklist.md +53 -0
- package/skills/oma-tf-infra/resources/cost-optimization.md +574 -0
- package/skills/oma-tf-infra/resources/error-playbook.md +68 -0
- package/skills/oma-tf-infra/resources/examples.md +38 -0
- package/skills/oma-tf-infra/resources/execution-protocol.md +129 -0
- package/skills/oma-tf-infra/resources/iso-42001-infra.md +229 -0
- package/skills/oma-tf-infra/resources/multi-cloud-examples.md +241 -0
- package/skills/oma-tf-infra/resources/policy-testing-examples.md +332 -0
- package/skills/oma-translation/SKILL.md +229 -0
- package/skills/oma-translation/resources/anti-ai-patterns.md +104 -0
- package/skills/oma-translation/resources/lang/_template.md +73 -0
- package/skills/oma-translation/resources/lang/en.md +123 -0
- package/skills/oma-translation/resources/lang/ja.md +274 -0
- package/skills/oma-translation/resources/lang/ko.md +228 -0
- package/skills/oma-translation/resources/lang/zh.md +285 -0
- package/skills/oma-translation/resources/style-skills.md +104 -0
- package/skills/oma-translation/resources/translation-rubric.md +126 -0
- package/skills/oma-video/SKILL.md +229 -0
- package/skills/oma-video/config/video-config.yaml +60 -0
- package/skills/oma-video/resources/checklist.md +26 -0
- package/skills/oma-video/resources/execution-protocol.md +122 -0
- package/skills/oma-video/resources/existing-media.md +185 -0
- package/skills/oma-video/resources/hyperframes-authoring/README.md +44 -0
- package/skills/oma-video/resources/hyperframes-authoring/demo.md +31 -0
- package/skills/oma-video/resources/hyperframes-authoring/explainer.md +10 -0
- package/skills/oma-video/resources/hyperframes-authoring/shorts.md +10 -0
- package/skills/oma-video/resources/motion-principles.md +81 -0
- package/skills/oma-video/resources/mpt/driver.py +301 -0
- package/skills/oma-video/resources/prompt-tips.md +75 -0
- package/skills/oma-video/resources/script-schema.md +81 -0
- package/skills/oma-video/resources/sound-design.md +127 -0
- package/skills/oma-video/resources/strudel/package.json +11 -0
- package/skills/oma-video/resources/strudel/page.html +87 -0
- package/skills/oma-video/resources/strudel/render.mjs +295 -0
- package/skills/oma-video/resources/vendor-matrix.md +124 -0
- package/skills/oma-voice/SKILL.md +249 -0
- package/skills/oma-voice/config/voice-config.yaml +30 -0
- package/skills/oma-voice/resources/audio-processing.md +119 -0
- package/skills/oma-voice/resources/checklist.md +47 -0
- package/skills/oma-voice/resources/execution-protocol.md +215 -0
- package/skills/oma-voice/resources/prompt-tips.md +43 -0
- package/skills/oma-voice/resources/voice-matrix.md +51 -0
- package/skills/oma-voice/resources/voicestudio.md +87 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# oma-pdf configuration
|
|
2
|
+
# PDF to Markdown conversion settings
|
|
3
|
+
#
|
|
4
|
+
# NOT the place to put your settings: `oma update` overwrites this file. Put
|
|
5
|
+
# overrides under `pdf:` in .agents/oma-config.yaml, which is preserved —
|
|
6
|
+
# that section wins, and this file supplies only the shipped defaults the skill
|
|
7
|
+
# falls back to. Migration 022 moves anything you changed here for you.
|
|
8
|
+
#
|
|
9
|
+
|
|
10
|
+
format: markdown
|
|
11
|
+
image_output: "off" # "off", "embedded" (base64), "external"
|
|
12
|
+
image_format: png # "png" or "jpeg"
|
|
13
|
+
use_struct_tree: false # Use Tagged PDF structure when available
|
|
14
|
+
|
|
15
|
+
# OCR settings (hybrid mode only)
|
|
16
|
+
ocr:
|
|
17
|
+
enabled: false
|
|
18
|
+
languages: "en" # Comma-separated: "ko,en", "ja,en", etc.
|
|
19
|
+
hybrid_port: 5002
|
|
20
|
+
|
|
21
|
+
# Output behavior
|
|
22
|
+
output:
|
|
23
|
+
# When no output directory is specified:
|
|
24
|
+
# "same_dir" = output next to the input PDF
|
|
25
|
+
# "cwd" = output in current working directory
|
|
26
|
+
default_location: same_dir
|
|
27
|
+
overwrite: false # Prompt before overwriting existing files
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
# PDF Conversion - Execution Protocol
|
|
2
|
+
|
|
3
|
+
## Step 0: Validate Input
|
|
4
|
+
|
|
5
|
+
1. Read the `pdf:` section of `.agents/oma-config.yaml` first; use `config/pdf-config.yaml` only for unset keys (image output, struct tree, OCR languages, hybrid port, overwrite behavior). Explicit user options override both.
|
|
6
|
+
2. Confirm the PDF file path exists
|
|
7
|
+
3. Check file size (`wc -c` or `ls -lh`); warn if >100MB
|
|
8
|
+
4. Determine output location:
|
|
9
|
+
- If user specified output path → use it
|
|
10
|
+
- If not specified → use the same directory as the input PDF
|
|
11
|
+
5. Determine output filename: `{input_name}.md` (same base name, `.md` extension)
|
|
12
|
+
6. If the output file already exists and config `output.overwrite` is `false`, confirm with the user before overwriting
|
|
13
|
+
|
|
14
|
+
## Step 1: Assess PDF Type
|
|
15
|
+
|
|
16
|
+
Quick check to determine conversion strategy — probe only the first pages, no temp files:
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
# Check if PDF has text layer (vs scanned image).
|
|
20
|
+
# -q is required: without it, Java INFO logs mix into stdout.
|
|
21
|
+
uvx opendataloader-pdf input.pdf -f text --pages 1-3 --to-stdout -q
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
- If output contains readable text → standard mode
|
|
25
|
+
- If output is empty or garbled → needs OCR (hybrid mode)
|
|
26
|
+
|
|
27
|
+
## Step 2: Convert
|
|
28
|
+
|
|
29
|
+
### Standard conversion
|
|
30
|
+
```bash
|
|
31
|
+
uvx opendataloader-pdf "{input_path}" --format markdown --output-dir "{output_dir}"
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### If Tagged PDF (structured documents, official reports)
|
|
35
|
+
```bash
|
|
36
|
+
uvx opendataloader-pdf "{input_path}" --format markdown --output-dir "{output_dir}" --use-struct-tree
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### If tables are missing or broken (try these BEFORE hybrid)
|
|
40
|
+
|
|
41
|
+
Hybrid mode downloads a large OCR stack; the core CLI has cheaper retries:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
# Borderless tables: cluster-based detection
|
|
45
|
+
uvx opendataloader-pdf "{input_path}" --format markdown --output-dir "{output_dir}" --table-method cluster
|
|
46
|
+
|
|
47
|
+
# Complex tables (row/col spans): allow HTML tables inside Markdown
|
|
48
|
+
uvx opendataloader-pdf "{input_path}" --format markdown --output-dir "{output_dir}" --markdown-with-html
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Escalate to hybrid mode only if tables are still wrong (typically scanned tables).
|
|
52
|
+
|
|
53
|
+
### If the PDF is large (memory pressure or slow conversion)
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
# Convert each page range into a distinct directory, then concatenate the files
|
|
57
|
+
uvx opendataloader-pdf "{input_path}" --format markdown --output-dir "{output_dir}/p1-50" --pages "1-50"
|
|
58
|
+
uvx opendataloader-pdf "{input_path}" --format markdown --output-dir "{output_dir}/p51-100" --pages "51-100"
|
|
59
|
+
|
|
60
|
+
# Or append each range from stdout into one combined file
|
|
61
|
+
uvx opendataloader-pdf "{input_path}" --format markdown --pages "1-50" --to-stdout >> "{output_path}"
|
|
62
|
+
|
|
63
|
+
# Or parallelize per-page processing (experimental)
|
|
64
|
+
uvx opendataloader-pdf "{input_path}" --format markdown --output-dir "{output_dir}" --threads 4
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Optional flags on request
|
|
68
|
+
|
|
69
|
+
- `--sanitize` — mask PII (emails, phone numbers, IPs, credit cards, URLs) for AI-ready data prep
|
|
70
|
+
- `--detect-strikethrough` — mark struck-through text with `~~` (experimental)
|
|
71
|
+
- `--markdown-page-separator "%page-number%"` — insert page markers between pages
|
|
72
|
+
- Hybrid server extras: `--enrich-formula` (LaTeX formulas), `--enrich-picture-description` (AI chart/image descriptions). Both require client-side `--hybrid-mode full`; the default `auto` mode may keep pages on the local path and skip enrichment.
|
|
73
|
+
|
|
74
|
+
### If scanned/image-based PDF (requires hybrid server)
|
|
75
|
+
```bash
|
|
76
|
+
# Start hybrid server (if not already running).
|
|
77
|
+
# The server is a console script of the [hybrid] extra — bare `uvx opendataloader-pdf-hybrid` fails (no such PyPI package).
|
|
78
|
+
# First run downloads a large OCR stack (torch, easyocr, docling); warn the user before starting.
|
|
79
|
+
uvx --from "opendataloader-pdf[hybrid]" opendataloader-pdf-hybrid --port 5002 --force-ocr --ocr-lang "{languages}"
|
|
80
|
+
|
|
81
|
+
# Convert
|
|
82
|
+
uvx opendataloader-pdf --hybrid docling-fast --hybrid-mode full "{input_path}" --format markdown --output-dir "{output_dir}"
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Step 3: Lint & Format
|
|
86
|
+
|
|
87
|
+
Run `mdformat` to normalize the converted Markdown:
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
uvx mdformat "{output_path}"
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
This auto-fixes:
|
|
94
|
+
- Inconsistent heading style
|
|
95
|
+
- Missing blank lines around blocks
|
|
96
|
+
- Trailing whitespace
|
|
97
|
+
- Unordered list marker normalization
|
|
98
|
+
|
|
99
|
+
## Step 4: Verify
|
|
100
|
+
|
|
101
|
+
1. Read the generated Markdown file
|
|
102
|
+
2. Verify structure:
|
|
103
|
+
- Headings preserved (`#`, `##`, etc.)
|
|
104
|
+
- Tables rendered correctly (pipe syntax)
|
|
105
|
+
- Lists maintained (bullets, numbered)
|
|
106
|
+
- No garbled or missing sections
|
|
107
|
+
3. If output directory is temporary, move the file to the target location
|
|
108
|
+
4. If the user needs the content in the conversation, read and present it
|
|
109
|
+
|
|
110
|
+
## Step 5: Report
|
|
111
|
+
|
|
112
|
+
Tell the user:
|
|
113
|
+
- Output file path
|
|
114
|
+
- Page count processed — read it from the converter log line `Processing N pages`, or `pdfinfo` when available
|
|
115
|
+
- Any issues encountered (missing tables, OCR quality, etc.)
|
|
116
|
+
- Suggest hybrid mode if standard conversion had quality issues
|
|
117
|
+
|
|
118
|
+
## Error Recovery
|
|
119
|
+
|
|
120
|
+
| Error | Recovery |
|
|
121
|
+
|-------|----------|
|
|
122
|
+
| `uvx` not found | Ask user to install `uv`: `curl -LsSf https://astral.sh/uv/install.sh \| sh` |
|
|
123
|
+
| PDF password protected | Ask user for the password, then retry with `-p "{password}"` (`opendataloader-pdf --password`) |
|
|
124
|
+
| Missing or broken tables | Retry with `--table-method cluster` or `--markdown-with-html` first; hybrid mode only for scanned tables |
|
|
125
|
+
| Hybrid server not running | Guide user to start it, or fall back to standard mode with quality warning |
|
|
126
|
+
| Out of memory on large PDF | Process each `--pages` range into a distinct output directory (or append `--to-stdout`) before concatenating; reusing one directory overwrites the same basename |
|
|
127
|
+
| Network error (hybrid mode) | Check server port, retry, or fall back to standard mode |
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: oma-pm
|
|
3
|
+
description: Turn product requirements into scoped tasks with dependencies and
|
|
4
|
+
acceptance criteria. Use for implementation planning and prioritization.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# PM Agent - Product Manager
|
|
8
|
+
|
|
9
|
+
## Scheduling
|
|
10
|
+
|
|
11
|
+
### Goal
|
|
12
|
+
Turn ambiguous or complex product requests into actionable, dependency-aware plans with clear tasks, priorities, acceptance criteria, API contracts, and risk/governance notes.
|
|
13
|
+
|
|
14
|
+
### Intent signature
|
|
15
|
+
- User asks for planning, requirements, specification, scope, prioritization, task breakdown, roadmap, or implementation plan.
|
|
16
|
+
- User needs work decomposed for specialist agents or orchestrator execution.
|
|
17
|
+
|
|
18
|
+
### When to use
|
|
19
|
+
- Breaking down complex feature requests into tasks
|
|
20
|
+
- Determining technical feasibility and architecture
|
|
21
|
+
- Prioritizing work and planning sprints
|
|
22
|
+
- Defining API contracts and data models
|
|
23
|
+
|
|
24
|
+
### When NOT to use
|
|
25
|
+
- Implementing actual code -> delegate to specialized agents
|
|
26
|
+
- Performing code reviews -> use QA Agent
|
|
27
|
+
|
|
28
|
+
### Expected inputs
|
|
29
|
+
- User request, product goal, constraints, target users, and acceptance expectations
|
|
30
|
+
- Existing codebase context, architecture constraints, and integration points
|
|
31
|
+
- Optional standards, risk, governance, or orchestration requirements
|
|
32
|
+
|
|
33
|
+
### Expected outputs
|
|
34
|
+
- JSON plan and `task-board.md`-compatible task breakdown
|
|
35
|
+
- Agent assignment, title, priority, dependencies, acceptance criteria, security/testing expectations
|
|
36
|
+
- API contracts or data model sketches when relevant
|
|
37
|
+
- Saved plan artifacts under `.agents/results/`
|
|
38
|
+
|
|
39
|
+
```yaml
|
|
40
|
+
outputs:
|
|
41
|
+
- name: plan
|
|
42
|
+
description: PM task breakdown JSON for orchestrator consumption
|
|
43
|
+
artifact: ".agents/results/plan-*.json"
|
|
44
|
+
required: true
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Dependencies
|
|
48
|
+
- `resources/execution-protocol.md`, examples, task template, and ISO planning guide
|
|
49
|
+
- Shared API contract references and project context-loading rules
|
|
50
|
+
- Downstream specialist skills for implementation
|
|
51
|
+
|
|
52
|
+
### Control-flow features
|
|
53
|
+
- Branches by ambiguity, dependency structure, risk level, and whether standards/governance framing is needed
|
|
54
|
+
- Produces planning artifacts rather than code
|
|
55
|
+
- Optimizes for parallelizable specialist-agent execution
|
|
56
|
+
|
|
57
|
+
## Structural Flow
|
|
58
|
+
|
|
59
|
+
### Entry
|
|
60
|
+
1. Clarify the product goal, constraints, and target deliverables.
|
|
61
|
+
2. Identify technical domains and required contracts.
|
|
62
|
+
3. Decide whether ISO/risk/governance framing is relevant.
|
|
63
|
+
|
|
64
|
+
### Scenes
|
|
65
|
+
1. **PREPARE**: Gather requirements, constraints, and context.
|
|
66
|
+
2. **REASON**: Decompose work, identify dependencies, risks, and API/data contracts.
|
|
67
|
+
3. **ACT**: Produce JSON plan and task-board-compatible output.
|
|
68
|
+
4. **VERIFY**: Check task atomicity, acceptance criteria, security/testing coverage, and dependency shape.
|
|
69
|
+
5. **FINALIZE**: Save plan artifacts and summarize execution path.
|
|
70
|
+
|
|
71
|
+
### Transitions
|
|
72
|
+
- If requirements are ambiguous, clarify before decomposition.
|
|
73
|
+
- If tasks are tightly coupled, refine contracts or sequencing.
|
|
74
|
+
- If architecture is uncertain, coordinate with architecture before implementation planning.
|
|
75
|
+
- If the user needs automated execution, hand off to orchestrator after plan approval.
|
|
76
|
+
|
|
77
|
+
### Failure and recovery
|
|
78
|
+
- If scope is too broad, split into phases.
|
|
79
|
+
- If acceptance criteria are vague, rewrite them into testable outcomes.
|
|
80
|
+
- If dependencies block parallel execution, surface sequencing explicitly.
|
|
81
|
+
|
|
82
|
+
### Exit
|
|
83
|
+
- Success: plan is actionable, testable, prioritized, and compatible with orchestrator execution.
|
|
84
|
+
- Partial success: unresolved assumptions or dependencies are explicit.
|
|
85
|
+
|
|
86
|
+
## Logical Operations
|
|
87
|
+
|
|
88
|
+
### Actions
|
|
89
|
+
| Action | SSL primitive | Evidence |
|
|
90
|
+
|--------|---------------|----------|
|
|
91
|
+
| Read requirements/context | `READ` | User request and project context |
|
|
92
|
+
| Select planning structure | `SELECT` | Task template and workflow needs |
|
|
93
|
+
| Infer tasks and dependencies | `INFER` | Domain decomposition |
|
|
94
|
+
| Validate acceptance criteria | `VALIDATE` | Checklist and task schema |
|
|
95
|
+
| Write plan artifacts | `WRITE` | JSON plan and task-board markdown |
|
|
96
|
+
| Notify plan summary | `NOTIFY` | Final planning report |
|
|
97
|
+
|
|
98
|
+
### Tools and instruments
|
|
99
|
+
- Task template, examples, ISO planning guide, shared API contracts
|
|
100
|
+
- Local filesystem for result artifacts
|
|
101
|
+
|
|
102
|
+
### Canonical workflow path
|
|
103
|
+
```text
|
|
104
|
+
1. Define API/data contracts.
|
|
105
|
+
2. Decompose tasks with agent, title, priority, dependencies, and acceptance criteria.
|
|
106
|
+
3. Save `.agents/results/plan-{sessionId}.json` using the injected session ID. Write the run-scoped report from the shared memory/result contract.
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### Resource scope
|
|
110
|
+
| Scope | Resource target |
|
|
111
|
+
|-------|-----------------|
|
|
112
|
+
| `MEMORY` | Requirements, assumptions, dependencies |
|
|
113
|
+
| `LOCAL_FS` | `.agents/results/plan-{sessionId}.json`, injected claim path and task/run-scoped report |
|
|
114
|
+
| `CODEBASE` | Optional project context and API/data model references |
|
|
115
|
+
|
|
116
|
+
### Preconditions
|
|
117
|
+
- Product goal and planning boundary are sufficiently clear.
|
|
118
|
+
- Required implementation domains can be identified.
|
|
119
|
+
|
|
120
|
+
### Effects and side effects
|
|
121
|
+
- Creates plan artifacts and task boards.
|
|
122
|
+
- Influences downstream agent assignments and execution order.
|
|
123
|
+
- Does not directly implement code.
|
|
124
|
+
|
|
125
|
+
### Guardrails
|
|
126
|
+
1. For changed interfaces, reuse or define API/data contracts before dependent implementation tasks
|
|
127
|
+
2. Every executable task has: agent, title, `{id, description}` acceptance criteria, covering `required_checks` with exact argv/cwd, a replayable `task` prompt, priority tier (1 = independent, lower runs first), dependencies, and scope
|
|
128
|
+
3. Minimize dependencies for maximum parallel execution
|
|
129
|
+
4. Security and testing are part of every task (not separate phases)
|
|
130
|
+
5. Tasks should be completable by a single agent
|
|
131
|
+
6. Output JSON plan + task-board.md for orchestrator compatibility
|
|
132
|
+
7. When relevant, structure plans using ISO 21500 concepts, risk prioritization using ISO 31000 thinking, and responsibility/governance suggestions inspired by ISO 38500
|
|
133
|
+
|
|
134
|
+
### Common Pitfalls
|
|
135
|
+
- Too Granular: "Implement user auth API" is one task, not five
|
|
136
|
+
- Vague Tasks: "Make it better" -> "Add loading states to all forms"
|
|
137
|
+
- Tight Coupling: tasks should use public APIs, not internal state
|
|
138
|
+
- Deferred Quality: testing is part of every task, not a final phase
|
|
139
|
+
|
|
140
|
+
## References
|
|
141
|
+
- Local code tools: `../_shared/core/code-intelligence.md` (code search/navigation)
|
|
142
|
+
|
|
143
|
+
- Runtime identity and run-scoped reports: `../_shared/runtime/memory-protocol.md`, `../_shared/runtime/result-contract.md`
|
|
144
|
+
- Execution steps (follow for the selected task): `resources/execution-protocol.md`
|
|
145
|
+
- Plan examples: `resources/examples.md`
|
|
146
|
+
- ISO planning guide: `resources/iso-planning.md`
|
|
147
|
+
- Error recovery: `resources/error-playbook.md`
|
|
148
|
+
- Task schema: `resources/task-template.json`
|
|
149
|
+
- Ultrawork PLAN phase protocol: `resources/plan-phase-protocol.md` (used when this skill runs inside the ultrawork workflow)
|
|
150
|
+
- Task board spec (orchestrator-consumed format): `../oma-orchestration/resources/memory-schema.md`
|
|
151
|
+
- Human-readable tracker: when running inside the `/plan` workflow, also generate `docs/plans/work/{NNN}-{name}.md` per `.agents/workflows/plan.md`
|
|
152
|
+
- API contract template (SSOT): `../_shared/core/api-contracts/template.md`; write generated contracts to `.agents/results/api-contracts/` (run artifact) or `docs/plans/contracts/` (durable spec)
|
|
153
|
+
- Context loading: `../_shared/core/context-loading.md`
|
|
154
|
+
- Planning depth: `../_shared/core/difficulty-guide.md` (unresolved scope or dependencies)
|
|
155
|
+
- Clarification: `../_shared/core/clarification-protocol.md`
|
|
156
|
+
- Context budget: `../_shared/core/context-budget.md`
|
|
157
|
+
- Lessons learned: `../_shared/core/lessons-learned.md` (matching prior failure or requested retrospective)
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# PM Agent - Error Recovery Playbook
|
|
2
|
+
|
|
3
|
+
When you encounter a failure during planning, follow these recovery steps.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Requirements Ambiguous
|
|
8
|
+
|
|
9
|
+
**Symptoms**: User request is vague ("Make me a good app", "Make it better")
|
|
10
|
+
|
|
11
|
+
1. Break down what you DO understand
|
|
12
|
+
2. List specific assumptions you're making
|
|
13
|
+
3. Create plan based on reasonable assumptions
|
|
14
|
+
4. Mark assumptions clearly: `Assumption: [description]`
|
|
15
|
+
5. **NEVER do this**: Create tasks whose ambiguity is left unstated. If you cannot even state a reasonable assumption for a task, stop and ask instead of planning it (agents will lose direction)
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Existing Codebase Unknown
|
|
20
|
+
|
|
21
|
+
**Symptoms**: Planning for an existing project but don't know the architecture
|
|
22
|
+
|
|
23
|
+
1. Use the configured provider to inspect source structure, following `../../_shared/core/code-intelligence.md`
|
|
24
|
+
2. Look for framework indicators: `package.json`, `pyproject.toml`, `pubspec.yaml`
|
|
25
|
+
3. Check for existing patterns: search for `@app.get|@app.post` (FastAPI) with the configured provider or native tools
|
|
26
|
+
4. If unavailable, inspect paths outside this project or ignored paths with native search; record any remaining architecture assumptions in the plan
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Task Decomposition Too Granular or Too Coarse
|
|
31
|
+
|
|
32
|
+
**Self-check**:
|
|
33
|
+
- Each task should take 1 agent, 10-20 turns
|
|
34
|
+
- If a task needs < 5 turns: merge with a related task
|
|
35
|
+
- If a task needs > 30 turns: split into sub-tasks
|
|
36
|
+
- If unsure: err on the side of fewer, larger tasks
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Dependency Deadlock
|
|
41
|
+
|
|
42
|
+
**Symptoms**: Task A depends on B, B depends on A (circular)
|
|
43
|
+
|
|
44
|
+
1. Identify the cycle
|
|
45
|
+
2. Break it by defining an API contract or shared interface first
|
|
46
|
+
3. Create a tier-1 task: "Define API contracts" (no dependencies), and shift the formerly-circular tasks to tier 2+
|
|
47
|
+
4. Both tasks then depend on the contract, not on each other
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Tech Stack Decision Unclear
|
|
52
|
+
|
|
53
|
+
**Symptoms**: Multiple valid options, no clear winner
|
|
54
|
+
|
|
55
|
+
1. Check existing codebase first; consistency wins over "better" tech
|
|
56
|
+
2. If greenfield: use the project's default stack (see SKILL.md tech-stack references)
|
|
57
|
+
3. Default choices: refer to each domain skill's `resources/tech-stack.md` for current versions
|
|
58
|
+
- Frontend: `oma-frontend/resources/tech-stack.md`
|
|
59
|
+
- Backend: `oma-backend/variants/{node,python,rust}/tech-stack.md`
|
|
60
|
+
- Mobile: `oma-mobile/resources/tech-stack.md`
|
|
61
|
+
4. Note decision rationale in plan: `tech_decision: { choice: "X", reason: "Y" }`
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Workflow State / Quota Issues
|
|
66
|
+
|
|
67
|
+
Same as the `oma-backend` playbook: see the "Rate Limit / Quota Error (LLM runtime)" and "Workflow State Unavailable" sections in `../../oma-backend/resources/error-playbook.md`.
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## General Principles
|
|
72
|
+
|
|
73
|
+
- **Plans are not code**: They don't need to be perfect. Agents can adjust during execution
|
|
74
|
+
- **Blocked**: If no progress after 5 turns, save current state, `Status: blocked`
|
|
75
|
+
- **No code writing**: PM only plans; delegate implementation to other agents
|