@rubix0270/arboris 1.0.2 → 1.0.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/package.json +25 -37
- package/run.mjs +10 -0
- package/dist/cli.mjs +0 -383
- package/manifest.json +0 -323
- package/prisma/skills/accessibility/SKILL.md +0 -147
- package/prisma/skills/agent-architecture-audit/SKILL.md +0 -257
- package/prisma/skills/agent-eval/SKILL.md +0 -146
- package/prisma/skills/agent-harness-construction/SKILL.md +0 -74
- package/prisma/skills/agent-introspection-debugging/SKILL.md +0 -154
- package/prisma/skills/agent-payment-x402/SKILL.md +0 -225
- package/prisma/skills/agent-self-evaluation/SKILL.md +0 -182
- package/prisma/skills/agent-self-evaluation/examples/high-score-example.md +0 -87
- package/prisma/skills/agent-self-evaluation/examples/low-score-example.md +0 -86
- package/prisma/skills/agent-self-evaluation/references/evaluation-criteria.md +0 -71
- package/prisma/skills/agent-self-evaluation/references/hook-integration.md +0 -64
- package/prisma/skills/agent-self-evaluation/scripts/evaluate.py +0 -408
- package/prisma/skills/agent-self-evaluation/templates/evaluation-report.md +0 -86
- package/prisma/skills/agent-sort/SKILL.md +0 -216
- package/prisma/skills/agentic-engineering/SKILL.md +0 -64
- package/prisma/skills/agentic-os/SKILL.md +0 -388
- package/prisma/skills/ai-first-engineering/SKILL.md +0 -52
- package/prisma/skills/ai-regression-testing/SKILL.md +0 -386
- package/prisma/skills/android-clean-architecture/SKILL.md +0 -340
- package/prisma/skills/angular-developer/SKILL.md +0 -155
- package/prisma/skills/angular-developer/references/angular-animations.md +0 -160
- package/prisma/skills/angular-developer/references/angular-aria.md +0 -410
- package/prisma/skills/angular-developer/references/cli.md +0 -86
- package/prisma/skills/angular-developer/references/component-harnesses.md +0 -59
- package/prisma/skills/angular-developer/references/component-styling.md +0 -91
- package/prisma/skills/angular-developer/references/components.md +0 -117
- package/prisma/skills/angular-developer/references/creating-services.md +0 -97
- package/prisma/skills/angular-developer/references/data-resolvers.md +0 -69
- package/prisma/skills/angular-developer/references/define-routes.md +0 -67
- package/prisma/skills/angular-developer/references/defining-providers.md +0 -72
- package/prisma/skills/angular-developer/references/di-fundamentals.md +0 -120
- package/prisma/skills/angular-developer/references/e2e-testing.md +0 -56
- package/prisma/skills/angular-developer/references/effects.md +0 -83
- package/prisma/skills/angular-developer/references/hierarchical-injectors.md +0 -43
- package/prisma/skills/angular-developer/references/host-elements.md +0 -80
- package/prisma/skills/angular-developer/references/injection-context.md +0 -63
- package/prisma/skills/angular-developer/references/inputs.md +0 -101
- package/prisma/skills/angular-developer/references/linked-signal.md +0 -59
- package/prisma/skills/angular-developer/references/loading-strategies.md +0 -61
- package/prisma/skills/angular-developer/references/mcp.md +0 -108
- package/prisma/skills/angular-developer/references/navigate-to-routes.md +0 -69
- package/prisma/skills/angular-developer/references/outputs.md +0 -86
- package/prisma/skills/angular-developer/references/reactive-forms.md +0 -122
- package/prisma/skills/angular-developer/references/rendering-strategies.md +0 -44
- package/prisma/skills/angular-developer/references/resource.md +0 -77
- package/prisma/skills/angular-developer/references/route-animations.md +0 -56
- package/prisma/skills/angular-developer/references/route-guards.md +0 -52
- package/prisma/skills/angular-developer/references/router-lifecycle.md +0 -45
- package/prisma/skills/angular-developer/references/router-testing.md +0 -87
- package/prisma/skills/angular-developer/references/show-routes-with-outlets.md +0 -68
- package/prisma/skills/angular-developer/references/signal-forms.md +0 -795
- package/prisma/skills/angular-developer/references/signals-overview.md +0 -94
- package/prisma/skills/angular-developer/references/tailwind-css.md +0 -69
- package/prisma/skills/angular-developer/references/template-driven-forms.md +0 -114
- package/prisma/skills/angular-developer/references/testing-fundamentals.md +0 -65
- package/prisma/skills/api-connector-builder/SKILL.md +0 -121
- package/prisma/skills/api-design/SKILL.md +0 -524
- package/prisma/skills/architecture-decision-records/SKILL.md +0 -180
- package/prisma/skills/article-writing/SKILL.md +0 -80
- package/prisma/skills/automation-audit-ops/SKILL.md +0 -143
- package/prisma/skills/autonomous-agent-harness/SKILL.md +0 -274
- package/prisma/skills/autonomous-loops/SKILL.md +0 -611
- package/prisma/skills/backend-patterns/SKILL.md +0 -562
- package/prisma/skills/benchmark/SKILL.md +0 -94
- package/prisma/skills/benchmark-methodology/SKILL.md +0 -190
- package/prisma/skills/benchmark-optimization-loop/SKILL.md +0 -70
- package/prisma/skills/blender-motion-state-inspection/SKILL.md +0 -165
- package/prisma/skills/blueprint/SKILL.md +0 -106
- package/prisma/skills/brand-discovery/SKILL.md +0 -145
- package/prisma/skills/brand-discovery/references/10_purpose-why.md +0 -40
- package/prisma/skills/brand-discovery/references/20_positioning.md +0 -44
- package/prisma/skills/brand-discovery/references/30_audience-niche.md +0 -52
- package/prisma/skills/brand-discovery/references/40_personality-archetype.md +0 -57
- package/prisma/skills/brand-discovery/references/50_voice-tone.md +0 -59
- package/prisma/skills/brand-discovery/references/60_narrative-story.md +0 -50
- package/prisma/skills/brand-discovery/references/70_founder-tension.md +0 -49
- package/prisma/skills/brand-discovery/references/90_SYNTHESIS.md +0 -133
- package/prisma/skills/brand-voice/SKILL.md +0 -98
- package/prisma/skills/brand-voice/references/voice-profile-schema.md +0 -55
- package/prisma/skills/browser-qa/SKILL.md +0 -105
- package/prisma/skills/bun-runtime/SKILL.md +0 -85
- package/prisma/skills/canary-watch/SKILL.md +0 -108
- package/prisma/skills/carrier-relationship-management/SKILL.md +0 -212
- package/prisma/skills/cisco-ios-patterns/SKILL.md +0 -164
- package/prisma/skills/ck/SKILL.md +0 -148
- package/prisma/skills/ck/commands/forget.mjs +0 -44
- package/prisma/skills/ck/commands/info.mjs +0 -24
- package/prisma/skills/ck/commands/init.mjs +0 -143
- package/prisma/skills/ck/commands/list.mjs +0 -40
- package/prisma/skills/ck/commands/migrate.mjs +0 -202
- package/prisma/skills/ck/commands/resume.mjs +0 -36
- package/prisma/skills/ck/commands/save.mjs +0 -210
- package/prisma/skills/ck/commands/shared.mjs +0 -387
- package/prisma/skills/ck/hooks/session-start.mjs +0 -224
- package/prisma/skills/claude-devfleet/SKILL.md +0 -112
- package/prisma/skills/click-path-audit/SKILL.md +0 -245
- package/prisma/skills/clickhouse-io/SKILL.md +0 -440
- package/prisma/skills/code-tour/SKILL.md +0 -254
- package/prisma/skills/codebase-onboarding/SKILL.md +0 -234
- package/prisma/skills/codehealth-mcp/SKILL.md +0 -167
- package/prisma/skills/coding-standards/SKILL.md +0 -551
- package/prisma/skills/competitive-platform-analysis/SKILL.md +0 -214
- package/prisma/skills/competitive-report-structure/SKILL.md +0 -162
- package/prisma/skills/compose-multiplatform-patterns/SKILL.md +0 -300
- package/prisma/skills/config-gc/SKILL.md +0 -120
- package/prisma/skills/configure-ecc/SKILL.md +0 -385
- package/prisma/skills/connections-optimizer/SKILL.md +0 -190
- package/prisma/skills/content-engine/SKILL.md +0 -132
- package/prisma/skills/content-hash-cache-pattern/SKILL.md +0 -162
- package/prisma/skills/context-budget/SKILL.md +0 -136
- package/prisma/skills/continuous-agent-loop/SKILL.md +0 -46
- package/prisma/skills/continuous-learning/SKILL.md +0 -132
- package/prisma/skills/continuous-learning/config.json +0 -18
- package/prisma/skills/continuous-learning/evaluate-session.sh +0 -69
- package/prisma/skills/continuous-learning-v2/SKILL.md +0 -361
- package/prisma/skills/continuous-learning-v2/agents/observer-loop.sh +0 -359
- package/prisma/skills/continuous-learning-v2/agents/observer.md +0 -189
- package/prisma/skills/continuous-learning-v2/agents/session-guardian.sh +0 -150
- package/prisma/skills/continuous-learning-v2/agents/start-observer.sh +0 -248
- package/prisma/skills/continuous-learning-v2/config.json +0 -8
- package/prisma/skills/continuous-learning-v2/hooks/observe.sh +0 -585
- package/prisma/skills/continuous-learning-v2/scripts/detect-project.sh +0 -322
- package/prisma/skills/continuous-learning-v2/scripts/instinct-cli.py +0 -1956
- package/prisma/skills/continuous-learning-v2/scripts/lib/homunculus-dir.sh +0 -31
- package/prisma/skills/continuous-learning-v2/scripts/migrate-homunculus.sh +0 -68
- package/prisma/skills/continuous-learning-v2/scripts/test_parse_instinct.py +0 -1421
- package/prisma/skills/cost-aware-llm-pipeline/SKILL.md +0 -184
- package/prisma/skills/cost-tracking/SKILL.md +0 -97
- package/prisma/skills/council/SKILL.md +0 -204
- package/prisma/skills/cpp-coding-standards/SKILL.md +0 -724
- package/prisma/skills/cpp-testing/SKILL.md +0 -325
- package/prisma/skills/crosspost/SKILL.md +0 -112
- package/prisma/skills/csharp-testing/SKILL.md +0 -322
- package/prisma/skills/customer-billing-ops/SKILL.md +0 -141
- package/prisma/skills/customs-trade-compliance/SKILL.md +0 -263
- package/prisma/skills/dart-flutter-patterns/SKILL.md +0 -564
- package/prisma/skills/dashboard-builder/SKILL.md +0 -109
- package/prisma/skills/data-scraper-agent/SKILL.md +0 -765
- package/prisma/skills/data-throughput-accelerator/SKILL.md +0 -73
- package/prisma/skills/database-migrations/SKILL.md +0 -430
- package/prisma/skills/deep-research/SKILL.md +0 -160
- package/prisma/skills/defi-amm-security/SKILL.md +0 -167
- package/prisma/skills/delivery-gate/SKILL.md +0 -126
- package/prisma/skills/delivery-gate/hooks/quality-gate.py +0 -220
- package/prisma/skills/deployment-patterns/SKILL.md +0 -428
- package/prisma/skills/design-system/SKILL.md +0 -83
- package/prisma/skills/django-celery/SKILL.md +0 -458
- package/prisma/skills/django-patterns/SKILL.md +0 -735
- package/prisma/skills/django-security/SKILL.md +0 -644
- package/prisma/skills/django-tdd/SKILL.md +0 -730
- package/prisma/skills/django-verification/SKILL.md +0 -470
- package/prisma/skills/dmux-workflows/SKILL.md +0 -192
- package/prisma/skills/docker-patterns/SKILL.md +0 -365
- package/prisma/skills/documentation-lookup/SKILL.md +0 -91
- package/prisma/skills/dotnet-patterns/SKILL.md +0 -322
- package/prisma/skills/dynamic-workflow-mode/SKILL.md +0 -124
- package/prisma/skills/e2e-testing/SKILL.md +0 -327
- package/prisma/skills/ecc-guide/SKILL.md +0 -190
- package/prisma/skills/ecc-recipes/SKILL.md +0 -149
- package/prisma/skills/ecc-tools-cost-audit/SKILL.md +0 -161
- package/prisma/skills/email-ops/SKILL.md +0 -122
- package/prisma/skills/energy-procurement/SKILL.md +0 -228
- package/prisma/skills/enterprise-agent-ops/SKILL.md +0 -51
- package/prisma/skills/error-handling/SKILL.md +0 -377
- package/prisma/skills/eval-harness/SKILL.md +0 -271
- package/prisma/skills/evm-token-decimals/SKILL.md +0 -131
- package/prisma/skills/exa-search/SKILL.md +0 -108
- package/prisma/skills/fal-ai-media/SKILL.md +0 -289
- package/prisma/skills/fastapi-patterns/SKILL.md +0 -514
- package/prisma/skills/finance-billing-ops/SKILL.md +0 -128
- package/prisma/skills/flox-environments/SKILL.md +0 -497
- package/prisma/skills/flutter-dart-code-review/SKILL.md +0 -436
- package/prisma/skills/foundation-models-on-device/SKILL.md +0 -243
- package/prisma/skills/frontend-a11y/SKILL.md +0 -446
- package/prisma/skills/frontend-design-direction/SKILL.md +0 -93
- package/prisma/skills/frontend-patterns/SKILL.md +0 -657
- package/prisma/skills/frontend-slides/SKILL.md +0 -185
- package/prisma/skills/frontend-slides/STYLE_PRESETS.md +0 -330
- package/prisma/skills/frontend-slides/animation-patterns.md +0 -122
- package/prisma/skills/frontend-slides/html-template.md +0 -419
- package/prisma/skills/frontend-slides/scripts/export-pdf.sh +0 -418
- package/prisma/skills/frontend-slides/scripts/extract-pptx.py +0 -96
- package/prisma/skills/frontend-slides/viewport-base.css +0 -153
- package/prisma/skills/fsharp-testing/SKILL.md +0 -281
- package/prisma/skills/gan-style-harness/SKILL.md +0 -279
- package/prisma/skills/gateguard/SKILL.md +0 -133
- package/prisma/skills/generating-python-installer/SKILL.md +0 -820
- package/prisma/skills/git-workflow/SKILL.md +0 -716
- package/prisma/skills/github-ops/SKILL.md +0 -145
- package/prisma/skills/golang-patterns/SKILL.md +0 -675
- package/prisma/skills/golang-testing/SKILL.md +0 -721
- package/prisma/skills/google-workspace-ops/SKILL.md +0 -96
- package/prisma/skills/growth-log/SKILL.md +0 -128
- package/prisma/skills/healthcare-cdss-patterns/SKILL.md +0 -246
- package/prisma/skills/healthcare-emr-patterns/SKILL.md +0 -160
- package/prisma/skills/healthcare-eval-harness/SKILL.md +0 -208
- package/prisma/skills/healthcare-phi-compliance/SKILL.md +0 -146
- package/prisma/skills/hermes-imports/SKILL.md +0 -89
- package/prisma/skills/hexagonal-architecture/SKILL.md +0 -277
- package/prisma/skills/hipaa-compliance/SKILL.md +0 -79
- package/prisma/skills/homelab-network-readiness/SKILL.md +0 -170
- package/prisma/skills/homelab-network-setup/SKILL.md +0 -130
- package/prisma/skills/homelab-pihole-dns/SKILL.md +0 -275
- package/prisma/skills/homelab-vlan-segmentation/SKILL.md +0 -312
- package/prisma/skills/homelab-wireguard-vpn/SKILL.md +0 -306
- package/prisma/skills/hookify-rules/SKILL.md +0 -128
- package/prisma/skills/inherit-legacy-style/SKILL.md +0 -157
- package/prisma/skills/intent-driven-development/SKILL.md +0 -360
- package/prisma/skills/inventory-demand-planning/SKILL.md +0 -247
- package/prisma/skills/investor-materials/SKILL.md +0 -97
- package/prisma/skills/investor-outreach/SKILL.md +0 -92
- package/prisma/skills/ios-icon-gen/SKILL.md +0 -158
- package/prisma/skills/ios-icon-gen/scripts/generate_icons.swift +0 -258
- package/prisma/skills/ios-icon-gen/scripts/iconify_gen.sh +0 -235
- package/prisma/skills/iterative-retrieval/SKILL.md +0 -212
- package/prisma/skills/ito-basket-compare/SKILL.md +0 -64
- package/prisma/skills/ito-data-atlas-agent/SKILL.md +0 -64
- package/prisma/skills/ito-market-intelligence/SKILL.md +0 -61
- package/prisma/skills/ito-trade-planner/SKILL.md +0 -68
- package/prisma/skills/java-coding-standards/SKILL.md +0 -384
- package/prisma/skills/jira-integration/SKILL.md +0 -303
- package/prisma/skills/jpa-patterns/SKILL.md +0 -152
- package/prisma/skills/knowledge-ops/SKILL.md +0 -155
- package/prisma/skills/kotlin-coroutines-flows/SKILL.md +0 -285
- package/prisma/skills/kotlin-exposed-patterns/SKILL.md +0 -720
- package/prisma/skills/kotlin-ktor-patterns/SKILL.md +0 -690
- package/prisma/skills/kotlin-patterns/SKILL.md +0 -712
- package/prisma/skills/kotlin-testing/SKILL.md +0 -825
- package/prisma/skills/kubernetes-patterns/SKILL.md +0 -756
- package/prisma/skills/laravel-patterns/SKILL.md +0 -416
- package/prisma/skills/laravel-plugin-discovery/SKILL.md +0 -230
- package/prisma/skills/laravel-security/SKILL.md +0 -948
- package/prisma/skills/laravel-tdd/SKILL.md +0 -675
- package/prisma/skills/laravel-verification/SKILL.md +0 -180
- package/prisma/skills/latency-critical-systems/SKILL.md +0 -74
- package/prisma/skills/lead-intelligence/SKILL.md +0 -322
- package/prisma/skills/lead-intelligence/agents/enrichment-agent.md +0 -85
- package/prisma/skills/lead-intelligence/agents/mutual-mapper.md +0 -75
- package/prisma/skills/lead-intelligence/agents/outreach-drafter.md +0 -98
- package/prisma/skills/lead-intelligence/agents/signal-scorer.md +0 -60
- package/prisma/skills/liquid-glass-design/SKILL.md +0 -279
- package/prisma/skills/llm-trading-agent-security/SKILL.md +0 -147
- package/prisma/skills/logistics-exception-management/SKILL.md +0 -222
- package/prisma/skills/loop-design-check/SKILL.md +0 -143
- package/prisma/skills/mailtrap-email-integration/SKILL.md +0 -77
- package/prisma/skills/make-interfaces-feel-better/SKILL.md +0 -152
- package/prisma/skills/manim-video/SKILL.md +0 -90
- package/prisma/skills/manim-video/assets/network_graph_scene.py +0 -52
- package/prisma/skills/market-research/SKILL.md +0 -76
- package/prisma/skills/marketing-campaign/SKILL.md +0 -114
- package/prisma/skills/mcp-server-patterns/SKILL.md +0 -70
- package/prisma/skills/messages-ops/SKILL.md +0 -105
- package/prisma/skills/ml-adoption-playbook/SKILL.md +0 -57
- package/prisma/skills/mle-workflow/SKILL.md +0 -347
- package/prisma/skills/motion-advanced/SKILL.md +0 -596
- package/prisma/skills/motion-foundations/SKILL.md +0 -299
- package/prisma/skills/motion-patterns/SKILL.md +0 -434
- package/prisma/skills/motion-ui/SKILL.md +0 -576
- package/prisma/skills/mysql-patterns/SKILL.md +0 -413
- package/prisma/skills/nanoclaw-repl/SKILL.md +0 -34
- package/prisma/skills/nestjs-patterns/SKILL.md +0 -231
- package/prisma/skills/netmiko-ssh-automation/SKILL.md +0 -174
- package/prisma/skills/network-bgp-diagnostics/SKILL.md +0 -168
- package/prisma/skills/network-config-validation/SKILL.md +0 -211
- package/prisma/skills/network-interface-health/SKILL.md +0 -153
- package/prisma/skills/nextjs-turbopack/SKILL.md +0 -58
- package/prisma/skills/nodejs-keccak256/SKILL.md +0 -103
- package/prisma/skills/nutrient-document-processing/SKILL.md +0 -168
- package/prisma/skills/nuxt4-patterns/SKILL.md +0 -101
- package/prisma/skills/openclaw-persona-forge/SKILL.md +0 -289
- package/prisma/skills/openclaw-persona-forge/gacha.py +0 -224
- package/prisma/skills/openclaw-persona-forge/gacha.sh +0 -5
- package/prisma/skills/openclaw-persona-forge/references/avatar-style.md +0 -124
- package/prisma/skills/openclaw-persona-forge/references/boundary-rules.md +0 -53
- package/prisma/skills/openclaw-persona-forge/references/error-handling.md +0 -53
- package/prisma/skills/openclaw-persona-forge/references/identity-tension.md +0 -48
- package/prisma/skills/openclaw-persona-forge/references/naming-system.md +0 -39
- package/prisma/skills/openclaw-persona-forge/references/output-template.md +0 -166
- package/prisma/skills/opensource-pipeline/SKILL.md +0 -256
- package/prisma/skills/orch-add-feature/SKILL.md +0 -45
- package/prisma/skills/orch-build-mvp/SKILL.md +0 -49
- package/prisma/skills/orch-change-feature/SKILL.md +0 -43
- package/prisma/skills/orch-fix-defect/SKILL.md +0 -43
- package/prisma/skills/orch-pipeline/SKILL.md +0 -121
- package/prisma/skills/orch-refine-code/SKILL.md +0 -44
- package/prisma/skills/parallel-execution-optimizer/SKILL.md +0 -73
- package/prisma/skills/perl-patterns/SKILL.md +0 -505
- package/prisma/skills/perl-security/SKILL.md +0 -504
- package/prisma/skills/perl-testing/SKILL.md +0 -476
- package/prisma/skills/plan-orchestrate/SKILL.md +0 -263
- package/prisma/skills/plankton-code-quality/SKILL.md +0 -237
- package/prisma/skills/postgres-patterns/SKILL.md +0 -148
- package/prisma/skills/prediction-market-oracle-research/SKILL.md +0 -64
- package/prisma/skills/prediction-market-risk-review/SKILL.md +0 -61
- package/prisma/skills/prisma-patterns/SKILL.md +0 -401
- package/prisma/skills/product-capability/SKILL.md +0 -142
- package/prisma/skills/product-lens/SKILL.md +0 -93
- package/prisma/skills/production-audit/SKILL.md +0 -207
- package/prisma/skills/production-scheduling/SKILL.md +0 -238
- package/prisma/skills/project-flow-ops/SKILL.md +0 -112
- package/prisma/skills/prompt-optimizer/SKILL.md +0 -398
- package/prisma/skills/python-patterns/SKILL.md +0 -751
- package/prisma/skills/python-testing/SKILL.md +0 -817
- package/prisma/skills/pytorch-patterns/SKILL.md +0 -397
- package/prisma/skills/quality-nonconformance/SKILL.md +0 -260
- package/prisma/skills/quarkus-patterns/SKILL.md +0 -723
- package/prisma/skills/quarkus-security/SKILL.md +0 -468
- package/prisma/skills/quarkus-tdd/SKILL.md +0 -812
- package/prisma/skills/quarkus-verification/SKILL.md +0 -480
- package/prisma/skills/ralphinho-rfc-pipeline/SKILL.md +0 -68
- package/prisma/skills/react-native-patterns/SKILL.md +0 -326
- package/prisma/skills/react-patterns/SKILL.md +0 -342
- package/prisma/skills/react-performance/SKILL.md +0 -575
- package/prisma/skills/react-testing/SKILL.md +0 -424
- package/prisma/skills/recsys-pipeline-architect/SKILL.md +0 -115
- package/prisma/skills/recursive-decision-ledger/SKILL.md +0 -80
- package/prisma/skills/redis-patterns/SKILL.md +0 -404
- package/prisma/skills/regex-vs-llm-structured-text/SKILL.md +0 -221
- package/prisma/skills/remotion-video-creation/SKILL.md +0 -43
- package/prisma/skills/remotion-video-creation/rules/3d.md +0 -86
- package/prisma/skills/remotion-video-creation/rules/animations.md +0 -29
- package/prisma/skills/remotion-video-creation/rules/assets/charts-bar-chart.tsx +0 -173
- package/prisma/skills/remotion-video-creation/rules/assets/text-animations-typewriter.tsx +0 -100
- package/prisma/skills/remotion-video-creation/rules/assets/text-animations-word-highlight.tsx +0 -108
- package/prisma/skills/remotion-video-creation/rules/assets.md +0 -78
- package/prisma/skills/remotion-video-creation/rules/audio.md +0 -172
- package/prisma/skills/remotion-video-creation/rules/calculate-metadata.md +0 -104
- package/prisma/skills/remotion-video-creation/rules/can-decode.md +0 -75
- package/prisma/skills/remotion-video-creation/rules/charts.md +0 -58
- package/prisma/skills/remotion-video-creation/rules/compositions.md +0 -146
- package/prisma/skills/remotion-video-creation/rules/display-captions.md +0 -126
- package/prisma/skills/remotion-video-creation/rules/extract-frames.md +0 -229
- package/prisma/skills/remotion-video-creation/rules/fonts.md +0 -152
- package/prisma/skills/remotion-video-creation/rules/get-audio-duration.md +0 -58
- package/prisma/skills/remotion-video-creation/rules/get-video-dimensions.md +0 -68
- package/prisma/skills/remotion-video-creation/rules/get-video-duration.md +0 -58
- package/prisma/skills/remotion-video-creation/rules/gifs.md +0 -138
- package/prisma/skills/remotion-video-creation/rules/images.md +0 -130
- package/prisma/skills/remotion-video-creation/rules/import-srt-captions.md +0 -67
- package/prisma/skills/remotion-video-creation/rules/lottie.md +0 -67
- package/prisma/skills/remotion-video-creation/rules/measuring-dom-nodes.md +0 -34
- package/prisma/skills/remotion-video-creation/rules/measuring-text.md +0 -143
- package/prisma/skills/remotion-video-creation/rules/sequencing.md +0 -106
- package/prisma/skills/remotion-video-creation/rules/tailwind.md +0 -11
- package/prisma/skills/remotion-video-creation/rules/text-animations.md +0 -20
- package/prisma/skills/remotion-video-creation/rules/timing.md +0 -179
- package/prisma/skills/remotion-video-creation/rules/transcribe-captions.md +0 -19
- package/prisma/skills/remotion-video-creation/rules/transitions.md +0 -122
- package/prisma/skills/remotion-video-creation/rules/trimming.md +0 -52
- package/prisma/skills/remotion-video-creation/rules/videos.md +0 -171
- package/prisma/skills/repo-scan/SKILL.md +0 -79
- package/prisma/skills/research-ops/SKILL.md +0 -113
- package/prisma/skills/returns-reverse-logistics/SKILL.md +0 -240
- package/prisma/skills/rules-distill/SKILL.md +0 -265
- package/prisma/skills/rules-distill/scripts/scan-rules.sh +0 -58
- package/prisma/skills/rules-distill/scripts/scan-skills.sh +0 -129
- package/prisma/skills/rust-patterns/SKILL.md +0 -500
- package/prisma/skills/rust-testing/SKILL.md +0 -501
- package/prisma/skills/safety-guard/SKILL.md +0 -76
- package/prisma/skills/santa-method/SKILL.md +0 -307
- package/prisma/skills/scientific-db-pubmed-database/SKILL.md +0 -176
- package/prisma/skills/scientific-db-uspto-database/SKILL.md +0 -178
- package/prisma/skills/scientific-pkg-gget/SKILL.md +0 -167
- package/prisma/skills/scientific-thinking-literature-review/SKILL.md +0 -193
- package/prisma/skills/scientific-thinking-scholar-evaluation/SKILL.md +0 -161
- package/prisma/skills/search-first/SKILL.md +0 -183
- package/prisma/skills/security-bounty-hunter/SKILL.md +0 -100
- package/prisma/skills/security-review/SKILL.md +0 -504
- package/prisma/skills/security-review/cloud-infrastructure-security.md +0 -361
- package/prisma/skills/security-scan/SKILL.md +0 -166
- package/prisma/skills/seo/SKILL.md +0 -155
- package/prisma/skills/skill-comply/SKILL.md +0 -59
- package/prisma/skills/skill-comply/fixtures/compliant_trace.jsonl +0 -5
- package/prisma/skills/skill-comply/fixtures/noncompliant_trace.jsonl +0 -3
- package/prisma/skills/skill-comply/fixtures/tdd_spec.yaml +0 -44
- package/prisma/skills/skill-comply/prompts/classifier.md +0 -24
- package/prisma/skills/skill-comply/prompts/scenario_generator.md +0 -62
- package/prisma/skills/skill-comply/prompts/spec_generator.md +0 -42
- package/prisma/skills/skill-comply/pyproject.toml +0 -15
- package/prisma/skills/skill-comply/scripts/__init__.py +0 -0
- package/prisma/skills/skill-comply/scripts/classifier.py +0 -85
- package/prisma/skills/skill-comply/scripts/grader.py +0 -124
- package/prisma/skills/skill-comply/scripts/parser.py +0 -107
- package/prisma/skills/skill-comply/scripts/report.py +0 -170
- package/prisma/skills/skill-comply/scripts/run.py +0 -127
- package/prisma/skills/skill-comply/scripts/runner.py +0 -194
- package/prisma/skills/skill-comply/scripts/scenario_generator.py +0 -70
- package/prisma/skills/skill-comply/scripts/spec_generator.py +0 -72
- package/prisma/skills/skill-comply/scripts/utils.py +0 -13
- package/prisma/skills/skill-comply/tests/test_grader.py +0 -197
- package/prisma/skills/skill-comply/tests/test_parser.py +0 -90
- package/prisma/skills/skill-comply/tests/test_runner.py +0 -172
- package/prisma/skills/skill-scout/SKILL.md +0 -141
- package/prisma/skills/skill-stocktake/SKILL.md +0 -195
- package/prisma/skills/skill-stocktake/scripts/quick-diff.sh +0 -87
- package/prisma/skills/skill-stocktake/scripts/save-results.sh +0 -56
- package/prisma/skills/skill-stocktake/scripts/scan.sh +0 -170
- package/prisma/skills/social-graph-ranker/SKILL.md +0 -155
- package/prisma/skills/social-publisher/SKILL.md +0 -130
- package/prisma/skills/springboot-patterns/SKILL.md +0 -315
- package/prisma/skills/springboot-security/SKILL.md +0 -273
- package/prisma/skills/springboot-tdd/SKILL.md +0 -159
- package/prisma/skills/springboot-verification/SKILL.md +0 -232
- package/prisma/skills/strategic-compact/SKILL.md +0 -136
- package/prisma/skills/swift-actor-persistence/SKILL.md +0 -144
- package/prisma/skills/swift-concurrency-6-2/SKILL.md +0 -216
- package/prisma/skills/swift-protocol-di-testing/SKILL.md +0 -191
- package/prisma/skills/swiftui-patterns/SKILL.md +0 -259
- package/prisma/skills/taste/SKILL.md +0 -264
- package/prisma/skills/taste/references/genre-taxonomy.md +0 -87
- package/prisma/skills/tdd-workflow/SKILL.md +0 -583
- package/prisma/skills/team-agent-orchestration/SKILL.md +0 -111
- package/prisma/skills/team-builder/SKILL.md +0 -169
- package/prisma/skills/terminal-ops/SKILL.md +0 -110
- package/prisma/skills/tinystruct-patterns/SKILL.md +0 -279
- package/prisma/skills/tinystruct-patterns/references/architecture.md +0 -90
- package/prisma/skills/tinystruct-patterns/references/data-handling.md +0 -60
- package/prisma/skills/tinystruct-patterns/references/database.md +0 -99
- package/prisma/skills/tinystruct-patterns/references/routing.md +0 -64
- package/prisma/skills/tinystruct-patterns/references/system-usage.md +0 -97
- package/prisma/skills/tinystruct-patterns/references/testing.md +0 -72
- package/prisma/skills/token-budget-advisor/SKILL.md +0 -134
- package/prisma/skills/ui-demo/SKILL.md +0 -466
- package/prisma/skills/ui-to-vue/SKILL.md +0 -135
- package/prisma/skills/uncloud/SKILL.md +0 -344
- package/prisma/skills/unified-notifications-ops/SKILL.md +0 -188
- package/prisma/skills/verification-loop/SKILL.md +0 -127
- package/prisma/skills/video-editing/SKILL.md +0 -311
- package/prisma/skills/videodb/SKILL.md +0 -375
- package/prisma/skills/videodb/reference/api-reference.md +0 -550
- package/prisma/skills/videodb/reference/capture-reference.md +0 -407
- package/prisma/skills/videodb/reference/capture.md +0 -101
- package/prisma/skills/videodb/reference/editor.md +0 -443
- package/prisma/skills/videodb/reference/generative.md +0 -331
- package/prisma/skills/videodb/reference/rtstream-reference.md +0 -564
- package/prisma/skills/videodb/reference/rtstream.md +0 -65
- package/prisma/skills/videodb/reference/search.md +0 -230
- package/prisma/skills/videodb/reference/streaming.md +0 -406
- package/prisma/skills/videodb/reference/use-cases.md +0 -118
- package/prisma/skills/videodb/scripts/ws_listener.py +0 -282
- package/prisma/skills/visa-doc-translate/README.md +0 -86
- package/prisma/skills/visa-doc-translate/SKILL.md +0 -117
- package/prisma/skills/vite-patterns/SKILL.md +0 -450
- package/prisma/skills/vue-patterns/SKILL.md +0 -471
- package/prisma/skills/windows-desktop-e2e/SKILL.md +0 -888
- package/prisma/skills/workspace-surface-audit/SKILL.md +0 -126
- package/prisma/skills/x-api/SKILL.md +0 -235
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
# tinystruct Data Handling (JSON)
|
|
2
|
-
|
|
3
|
-
## When to Use
|
|
4
|
-
|
|
5
|
-
Prefer `org.tinystruct.data.component.Builder` and `Builders` for lightweight, zero-dependency JSON. Use `Builder` for JSON objects (`{}`), `Builders` for JSON arrays (`[]`). **Always use `Builders` instead of `List<Builder>`** to avoid generic type erasure issues.
|
|
6
|
-
|
|
7
|
-
## How It Works
|
|
8
|
-
|
|
9
|
-
`Builder` provides a key-value interface for creating and reading JSON objects. `Builders` provides an indexed list for JSON arrays. Both integrate directly with `AbstractApplication` result handling.
|
|
10
|
-
|
|
11
|
-
### Why Builder/Builders?
|
|
12
|
-
- **Zero External Dependencies** — lean and fast
|
|
13
|
-
- **Native Integration** — works with framework result handling
|
|
14
|
-
- **Type Safety** — `Builders` serializes properly to `[]`; `List<Builder>` can cause casting issues
|
|
15
|
-
|
|
16
|
-
## Examples
|
|
17
|
-
|
|
18
|
-
### Serialize a Single Object
|
|
19
|
-
```java
|
|
20
|
-
import org.tinystruct.data.component.Builder;
|
|
21
|
-
|
|
22
|
-
Builder response = new Builder();
|
|
23
|
-
response.put("status", "success");
|
|
24
|
-
response.put("count", 42);
|
|
25
|
-
return response.toString(); // {"status":"success","count":42}
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
### Serialize a List using Builders
|
|
29
|
-
```java
|
|
30
|
-
import org.tinystruct.data.component.Builder;
|
|
31
|
-
import org.tinystruct.data.component.Builders;
|
|
32
|
-
|
|
33
|
-
Builders dataList = new Builders();
|
|
34
|
-
for (MyModel item : myCollection) {
|
|
35
|
-
Builder b = new Builder();
|
|
36
|
-
b.put("id", item.getId());
|
|
37
|
-
b.put("name", item.getName());
|
|
38
|
-
dataList.add(b);
|
|
39
|
-
}
|
|
40
|
-
Builder response = new Builder();
|
|
41
|
-
response.put("data", dataList);
|
|
42
|
-
return response.toString(); // {"data":[{"id":1,"name":"X"}]}
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
### Parse a JSON Object
|
|
46
|
-
```java
|
|
47
|
-
Builder parsed = new Builder();
|
|
48
|
-
parsed.parse(jsonString);
|
|
49
|
-
String status = parsed.get("status").toString();
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
### Parse a JSON Array
|
|
53
|
-
```java
|
|
54
|
-
Builders parsedArray = new Builders();
|
|
55
|
-
parsedArray.parse(jsonArrayString);
|
|
56
|
-
for (int i = 0; i < parsedArray.size(); i++) {
|
|
57
|
-
Builder item = parsedArray.get(i);
|
|
58
|
-
System.out.println(item.get("name"));
|
|
59
|
-
}
|
|
60
|
-
```
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
# tinystruct Database Persistence
|
|
2
|
-
|
|
3
|
-
## When to Use
|
|
4
|
-
|
|
5
|
-
Use the built-in ORM-like data layer for database operations. It provides a lightweight alternative to JPA/Hibernate using POJOs extending `AbstractData` and XML mapping files.
|
|
6
|
-
|
|
7
|
-
## How It Works
|
|
8
|
-
|
|
9
|
-
### Architecture
|
|
10
|
-
|
|
11
|
-
Each table is represented by:
|
|
12
|
-
1. **Java POJO**: Extends `AbstractData`, provides getters/setters and `setData(Row)`.
|
|
13
|
-
2. **Mapping XML**: `ClassName.map.xml` in resources, binding Java fields to DB columns.
|
|
14
|
-
|
|
15
|
-
#### Key Base Class: `AbstractData`
|
|
16
|
-
Provides CRUD methods:
|
|
17
|
-
- `append()` / `appendAndGetId()`
|
|
18
|
-
- `update()`
|
|
19
|
-
- `delete()`
|
|
20
|
-
- `findAll()` / `findOneById()` / `findOneByKey(key, value)`
|
|
21
|
-
- `findWith(where, params)`
|
|
22
|
-
- `find(SQL, params)`
|
|
23
|
-
|
|
24
|
-
### POJO Generation (CLI)
|
|
25
|
-
|
|
26
|
-
Introspect a live database table to produce the POJO and mapping file.
|
|
27
|
-
|
|
28
|
-
#### Configuration
|
|
29
|
-
`application.properties`:
|
|
30
|
-
```properties
|
|
31
|
-
driver=com.mysql.cj.jdbc.Driver
|
|
32
|
-
database.url=jdbc:mysql://localhost:3306/mydb
|
|
33
|
-
database.user=root
|
|
34
|
-
database.password=secret
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
#### Command
|
|
38
|
-
```bash
|
|
39
|
-
# Interactive mode
|
|
40
|
-
bin/dispatcher generate
|
|
41
|
-
|
|
42
|
-
# Specify table
|
|
43
|
-
bin/dispatcher generate --tables users
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
## Examples
|
|
47
|
-
|
|
48
|
-
### CRUD Operations
|
|
49
|
-
```java
|
|
50
|
-
// CREATE
|
|
51
|
-
User user = new User();
|
|
52
|
-
user.setUsername("james");
|
|
53
|
-
user.append();
|
|
54
|
-
|
|
55
|
-
// READ
|
|
56
|
-
User user = new User();
|
|
57
|
-
user.setId(42);
|
|
58
|
-
user.findOneById();
|
|
59
|
-
|
|
60
|
-
// UPDATE
|
|
61
|
-
user.setEmail("new@example.com");
|
|
62
|
-
user.update();
|
|
63
|
-
|
|
64
|
-
// DELETE
|
|
65
|
-
user.delete();
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
### Querying with Conditions
|
|
69
|
-
```java
|
|
70
|
-
User user = new User();
|
|
71
|
-
Table results = user.findWith("username LIKE ?", new Object[]{"%jam%"});
|
|
72
|
-
|
|
73
|
-
// Fluent Condition Builder
|
|
74
|
-
Condition condition = new Condition();
|
|
75
|
-
condition.setRequestFields("id,username");
|
|
76
|
-
Table filtered = user.find(
|
|
77
|
-
condition.select("`users`").and("email LIKE ?").orderBy("id DESC"),
|
|
78
|
-
new Object[]{"%@example.com"}
|
|
79
|
-
);
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
### Mapping XML Structure
|
|
83
|
-
`User.map.xml`:
|
|
84
|
-
```xml
|
|
85
|
-
<mapping>
|
|
86
|
-
<class name="User" table="users">
|
|
87
|
-
<id name="Id" column="id" increment="true" generate="false" length="11" type="int"/>
|
|
88
|
-
<property name="username" column="username" length="50" type="varchar"/>
|
|
89
|
-
<property name="email" column="email" length="100" type="varchar"/>
|
|
90
|
-
</class>
|
|
91
|
-
</mapping>
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
## Important Rules
|
|
95
|
-
|
|
96
|
-
1. **File Placement**: The mapping XML **must** mirror the POJO's package path under `src/main/resources/`.
|
|
97
|
-
2. **Naming**: Table names are singularized for class names (`users` → `User`). Underscored columns become camelCase fields (`created_at` → `createdAt`).
|
|
98
|
-
3. **Setters**: Use `setFieldAsXxx` methods (e.g., `setFieldAsString`) in setters to sync state with the internal field map.
|
|
99
|
-
4. **Id Field**: The primary key field in Java is always named `Id` (inherited from `AbstractData`).
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
# tinystruct @Action Routing Reference
|
|
2
|
-
|
|
3
|
-
## When to Use
|
|
4
|
-
|
|
5
|
-
Use the `@Action` annotation in your applications to define routes for both CLI commands and HTTP endpoints. It is appropriate whenever you need to map logic to a specific path, handle parameterized requests, or restrict execution to specific HTTP methods while maintaining a consistent command structure across environments.
|
|
6
|
-
|
|
7
|
-
## How It Works
|
|
8
|
-
|
|
9
|
-
The `ActionRegistry` parses `@Action` annotations to build a routing table. For parameterized methods, the framework automatically maps Java parameter types to corresponding regex segments.
|
|
10
|
-
|
|
11
|
-
### Regex Generation Rules
|
|
12
|
-
- `getUser(int id)` → pattern: `^/?user/(-?\d+)$`
|
|
13
|
-
- `search(String query)` → pattern: `^/?search/([^/]+)$`
|
|
14
|
-
|
|
15
|
-
Supported parameter types: `String`, `int/Integer`, `long/Long`, `float/Float`, `double/Double`, `boolean/Boolean`, `char/Character`, `short/Short`, `byte/Byte`, `Date` (parsed as `yyyy-MM-dd HH:mm:ss`).
|
|
16
|
-
|
|
17
|
-
### Mode Values
|
|
18
|
-
|
|
19
|
-
| Mode | When it triggers |
|
|
20
|
-
|---|---|
|
|
21
|
-
| `DEFAULT` | Both CLI and HTTP (GET, POST, etc.) |
|
|
22
|
-
| `CLI` | CLI dispatcher only |
|
|
23
|
-
| `HTTP_GET` | HTTP GET only |
|
|
24
|
-
| `HTTP_POST` | HTTP POST only |
|
|
25
|
-
| `HTTP_PUT` | HTTP PUT only |
|
|
26
|
-
| `HTTP_DELETE` | HTTP DELETE only |
|
|
27
|
-
| `HTTP_PATCH` | HTTP PATCH only |
|
|
28
|
-
|
|
29
|
-
> **Note:** You can map HTTP method names to `Mode` using `Action.Mode.fromName(String methodName)`. Unknown or null values return `Mode.DEFAULT`.
|
|
30
|
-
|
|
31
|
-
## Examples
|
|
32
|
-
|
|
33
|
-
### Basic Action Declaration
|
|
34
|
-
```java
|
|
35
|
-
@Action(
|
|
36
|
-
value = "path/subpath", // required: URI segment or CLI command
|
|
37
|
-
description = "What it does", // shown in --help output
|
|
38
|
-
mode = Mode.DEFAULT, // default: Mode.DEFAULT
|
|
39
|
-
example = "bin/dispatcher path/subpath/42"
|
|
40
|
-
)
|
|
41
|
-
public String myAction(int id) { ... }
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
### Parameterized Paths
|
|
45
|
-
```java
|
|
46
|
-
@Action("user/{id}")
|
|
47
|
-
public String getUser(int id) { ... }
|
|
48
|
-
// → CLI: bin/dispatcher user/42
|
|
49
|
-
// → HTTP: /?q=user/42
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
### Dependency Injection
|
|
53
|
-
`ActionRegistry` automatically injects `Request` and/or `Response` from `Context` if they are parameters:
|
|
54
|
-
|
|
55
|
-
```java
|
|
56
|
-
@Action(value = "upload", mode = Mode.HTTP_POST)
|
|
57
|
-
public String upload(Request<?, ?> req, Response<?, ?> res) throws ApplicationException {
|
|
58
|
-
// Access raw request/response if needed
|
|
59
|
-
return "ok";
|
|
60
|
-
}
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
### Path Matching Priority
|
|
64
|
-
If two methods share the same path, the framework uses the first match in the `ActionRegistry`. Use explicit `Mode` values to disambiguate (e.g., separating a GET for a form and a POST for submission).
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
# tinystruct System and Usage Reference
|
|
2
|
-
|
|
3
|
-
## When to Use
|
|
4
|
-
|
|
5
|
-
Use these patterns to handle request state, manage web sessions, implement Server-Sent Events (SSE), handle file uploads, or perform outbound HTTP networking.
|
|
6
|
-
|
|
7
|
-
## How It Works
|
|
8
|
-
|
|
9
|
-
### Context and CLI Arguments
|
|
10
|
-
`Context` is the primary data store for request-specific state. CLI flags passed as `--key value` are stored in `Context` as `"--key"`.
|
|
11
|
-
|
|
12
|
-
### Session Management
|
|
13
|
-
Pluggable architecture. Default is `MemorySessionRepository`. Configure Redis in `application.properties`:
|
|
14
|
-
```properties
|
|
15
|
-
default.session.repository=org.tinystruct.http.RedisSessionRepository
|
|
16
|
-
redis.host=127.0.0.1
|
|
17
|
-
redis.port=6379
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
### Server-Sent Events (SSE)
|
|
21
|
-
Built-in support for real-time push. The `HttpServer` automatically handles the SSE lifecycle when it detects the `Accept: text/event-stream` header. Connections are tracked by session ID in `SSEPushManager`.
|
|
22
|
-
|
|
23
|
-
### Outbound Networking
|
|
24
|
-
Use `URLRequest` and `HTTPHandler` for making HTTP requests to external services.
|
|
25
|
-
|
|
26
|
-
## Examples
|
|
27
|
-
|
|
28
|
-
### Context and CLI Arguments
|
|
29
|
-
```java
|
|
30
|
-
@Action("echo")
|
|
31
|
-
public String echo() {
|
|
32
|
-
// CLI: bin/dispatcher echo --words "Hello World"
|
|
33
|
-
Object words = getContext().getAttribute("--words");
|
|
34
|
-
if (words != null) return words.toString();
|
|
35
|
-
return "No words provided";
|
|
36
|
-
}
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
### Session Management
|
|
40
|
-
```java
|
|
41
|
-
@Action(value = "login", mode = Mode.HTTP_POST)
|
|
42
|
-
public String login(Request<?, ?> request) {
|
|
43
|
-
request.getSession().setAttribute("userId", "42");
|
|
44
|
-
return "Logged in";
|
|
45
|
-
}
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
### Server-Sent Events (SSE)
|
|
49
|
-
```java
|
|
50
|
-
@Action("sse/connect")
|
|
51
|
-
public String connect() {
|
|
52
|
-
return "{\"type\":\"connect\",\"message\":\"Connected\"}";
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
// In another method or event handler:
|
|
56
|
-
String sessionId = getContext().getId();
|
|
57
|
-
SSEPushManager.getInstance().push(sessionId, new Builder().put("msg", "hello"));
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
### File Uploads
|
|
61
|
-
```java
|
|
62
|
-
import org.tinystruct.data.FileEntity;
|
|
63
|
-
|
|
64
|
-
@Action(value = "upload", mode = Mode.HTTP_POST)
|
|
65
|
-
public String upload(Request<?, ?> request) throws ApplicationException {
|
|
66
|
-
List<FileEntity> files = request.getAttachments();
|
|
67
|
-
if (files != null) {
|
|
68
|
-
for (FileEntity file : files) {
|
|
69
|
-
// file.getFilename(), file.getContent()
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
return "Uploaded";
|
|
73
|
-
}
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
### Outbound HTTP
|
|
77
|
-
```java
|
|
78
|
-
import org.tinystruct.net.URLRequest;
|
|
79
|
-
import org.tinystruct.net.handlers.HTTPHandler;
|
|
80
|
-
|
|
81
|
-
URLRequest request = new URLRequest(new URL("https://api.example.com"));
|
|
82
|
-
request.setMethod("POST").setBody("{\"data\":\"val\"}");
|
|
83
|
-
|
|
84
|
-
HTTPHandler handler = new HTTPHandler();
|
|
85
|
-
var response = handler.handleRequest(request);
|
|
86
|
-
if (response.getStatusCode() == 200) {
|
|
87
|
-
String body = response.getBody();
|
|
88
|
-
}
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
### Event System
|
|
92
|
-
Register handlers in `init()` for asynchronous task execution.
|
|
93
|
-
```java
|
|
94
|
-
EventDispatcher.getInstance().registerHandler(MyEvent.class, event -> {
|
|
95
|
-
CompletableFuture.runAsync(() -> doHeavyWork(event.getPayload()));
|
|
96
|
-
});
|
|
97
|
-
```
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
# tinystruct Testing Patterns
|
|
2
|
-
|
|
3
|
-
## When to Use
|
|
4
|
-
|
|
5
|
-
Use these patterns when writing unit tests for your applications with **JUnit 5**. Essential for verifying action logic, routing registration, and HTTP mode behavior.
|
|
6
|
-
|
|
7
|
-
## How It Works
|
|
8
|
-
|
|
9
|
-
### Unit Testing Applications
|
|
10
|
-
ActionRegistry is a singleton. To test an application:
|
|
11
|
-
1. Instantiate the application.
|
|
12
|
-
2. Provide a `Settings` object (triggers `init()` and annotation processing).
|
|
13
|
-
3. Use `app.invoke(path, args)` to test logic directly.
|
|
14
|
-
|
|
15
|
-
### HTTP Integration Testing
|
|
16
|
-
For tests involving the built-in HTTP server:
|
|
17
|
-
1. Start `HttpServer` in a background thread.
|
|
18
|
-
2. Use `ApplicationManager.call("start", context, Action.Mode.CLI)` to boot.
|
|
19
|
-
3. Wait for the port to be open using a `Socket`.
|
|
20
|
-
4. Use `URLRequest` and `HTTPHandler` to perform actual requests.
|
|
21
|
-
|
|
22
|
-
## Examples
|
|
23
|
-
|
|
24
|
-
### Unit Test
|
|
25
|
-
```java
|
|
26
|
-
import org.junit.jupiter.api.*;
|
|
27
|
-
import org.tinystruct.system.Settings;
|
|
28
|
-
|
|
29
|
-
class MyAppTest {
|
|
30
|
-
private MyApp app;
|
|
31
|
-
|
|
32
|
-
@BeforeEach
|
|
33
|
-
void setUp() {
|
|
34
|
-
app = new MyApp();
|
|
35
|
-
app.setConfiguration(new Settings());
|
|
36
|
-
app.init(); // triggers @Action annotation processing and registers all actions
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
@Test
|
|
40
|
-
void testHello() throws Exception {
|
|
41
|
-
Object result = app.invoke("hello");
|
|
42
|
-
Assertions.assertEquals("Hello!", result);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
@Test
|
|
46
|
-
void testGreet() throws Exception {
|
|
47
|
-
Object result = app.invoke("greet", new Object[]{"James"});
|
|
48
|
-
Assertions.assertEquals("Hello, James!", result);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
### ActionRegistry Match Testing
|
|
54
|
-
```java
|
|
55
|
-
@Test
|
|
56
|
-
void testRouting() {
|
|
57
|
-
ActionRegistry registry = ActionRegistry.getInstance();
|
|
58
|
-
Action action = registry.getAction("greet/James");
|
|
59
|
-
Assertions.assertNotNull(action);
|
|
60
|
-
}
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
### HTTP Integration Pattern
|
|
64
|
-
Reference: `src/test/java/org/tinystruct/system/HttpServerHttpModeTest.java`
|
|
65
|
-
|
|
66
|
-
```java
|
|
67
|
-
// Pattern:
|
|
68
|
-
// 1. Start server in thread
|
|
69
|
-
// 2. Poll for port availability
|
|
70
|
-
// 3. Send HTTP request via HTTPHandler
|
|
71
|
-
// 4. Assert response body/status
|
|
72
|
-
```
|
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: token-budget-advisor
|
|
3
|
-
description: >-
|
|
4
|
-
Offers the user an informed choice about how much response depth to
|
|
5
|
-
consume before answering. Use this skill when the user explicitly
|
|
6
|
-
wants to control response length, depth, or token budget.
|
|
7
|
-
TRIGGER when: "token budget", "token count", "token usage", "token limit",
|
|
8
|
-
"response length", "answer depth", "short version", "brief answer",
|
|
9
|
-
"detailed answer", "exhaustive answer", "respuesta corta vs larga",
|
|
10
|
-
"cuántos tokens", "ahorrar tokens", "responde al 50%", "dame la versión
|
|
11
|
-
corta", "quiero controlar cuánto usas", or clear variants where the
|
|
12
|
-
user is explicitly asking to control answer size or depth.
|
|
13
|
-
DO NOT TRIGGER when: user has already specified a level in the current
|
|
14
|
-
session (maintain it), the request is clearly a one-word answer, or
|
|
15
|
-
"token" refers to auth/session/payment tokens rather than response size.
|
|
16
|
-
metadata:
|
|
17
|
-
origin: community
|
|
18
|
-
---
|
|
19
|
-
|
|
20
|
-
# Token Budget Advisor (TBA)
|
|
21
|
-
|
|
22
|
-
Intercept the response flow to offer the user a choice about response depth **before** Claude answers.
|
|
23
|
-
|
|
24
|
-
## When to Use
|
|
25
|
-
|
|
26
|
-
- User wants to control how long or detailed a response is
|
|
27
|
-
- User mentions tokens, budget, depth, or response length
|
|
28
|
-
- User says "short version", "tldr", "brief", "al 25%", "exhaustive", etc.
|
|
29
|
-
- Any time the user wants to choose depth/detail level upfront
|
|
30
|
-
|
|
31
|
-
**Do not trigger** when: user already set a level this session (maintain it silently), or the answer is trivially one line.
|
|
32
|
-
|
|
33
|
-
## How It Works
|
|
34
|
-
|
|
35
|
-
### Step 1 — Estimate input tokens
|
|
36
|
-
|
|
37
|
-
Use the repository's canonical context-budget heuristics to estimate the prompt's token count mentally.
|
|
38
|
-
|
|
39
|
-
Use the same calibration guidance as [context-budget](../context-budget/SKILL.md):
|
|
40
|
-
|
|
41
|
-
- prose: `words × 1.3`
|
|
42
|
-
- code-heavy or mixed/code blocks: `chars / 4`
|
|
43
|
-
|
|
44
|
-
For mixed content, use the dominant content type and keep the estimate heuristic.
|
|
45
|
-
|
|
46
|
-
### Step 2 — Estimate response size by complexity
|
|
47
|
-
|
|
48
|
-
Classify the prompt, then apply the multiplier range to get the full response window:
|
|
49
|
-
|
|
50
|
-
| Complexity | Multiplier range | Example prompts |
|
|
51
|
-
|--------------|------------------|------------------------------------------------------|
|
|
52
|
-
| Simple | 3× – 8× | "What is X?", yes/no, single fact |
|
|
53
|
-
| Medium | 8× – 20× | "How does X work?" |
|
|
54
|
-
| Medium-High | 10× – 25× | Code request with context |
|
|
55
|
-
| Complex | 15× – 40× | Multi-part analysis, comparisons, architecture |
|
|
56
|
-
| Creative | 10× – 30× | Stories, essays, narrative writing |
|
|
57
|
-
|
|
58
|
-
Response window = `input_tokens × mult_min` to `input_tokens × mult_max` (but don’t exceed your model’s configured output-token limit).
|
|
59
|
-
|
|
60
|
-
### Step 3 — Present depth options
|
|
61
|
-
|
|
62
|
-
Present this block **before** answering, using the actual estimated numbers:
|
|
63
|
-
|
|
64
|
-
```
|
|
65
|
-
Analyzing your prompt...
|
|
66
|
-
|
|
67
|
-
Input: ~[N] tokens | Type: [type] | Complexity: [level] | Language: [lang]
|
|
68
|
-
|
|
69
|
-
Choose your depth level:
|
|
70
|
-
|
|
71
|
-
[1] Essential (25%) -> ~[tokens] Direct answer only, no preamble
|
|
72
|
-
[2] Moderate (50%) -> ~[tokens] Answer + context + 1 example
|
|
73
|
-
[3] Detailed (75%) -> ~[tokens] Full answer with alternatives
|
|
74
|
-
[4] Exhaustive (100%) -> ~[tokens] Everything, no limits
|
|
75
|
-
|
|
76
|
-
Which level? (1-4 or say "25% depth", "50% depth", "75% depth", "100% depth")
|
|
77
|
-
|
|
78
|
-
Precision: heuristic estimate ~85-90% accuracy (±15%).
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
Level token estimates (within the response window):
|
|
82
|
-
- 25% → `min + (max - min) × 0.25`
|
|
83
|
-
- 50% → `min + (max - min) × 0.50`
|
|
84
|
-
- 75% → `min + (max - min) × 0.75`
|
|
85
|
-
- 100% → `max`
|
|
86
|
-
|
|
87
|
-
### Step 4 — Respond at the chosen level
|
|
88
|
-
|
|
89
|
-
| Level | Target length | Include | Omit |
|
|
90
|
-
|------------------|---------------------|-----------------------------------------------------|---------------------------------------------------|
|
|
91
|
-
| 25% Essential | 2-4 sentences max | Direct answer, key conclusion | Context, examples, nuance, alternatives |
|
|
92
|
-
| 50% Moderate | 1-3 paragraphs | Answer + necessary context + 1 example | Deep analysis, edge cases, references |
|
|
93
|
-
| 75% Detailed | Structured response | Multiple examples, pros/cons, alternatives | Extreme edge cases, exhaustive references |
|
|
94
|
-
| 100% Exhaustive | No restriction | Everything — full analysis, all code, all perspectives | Nothing |
|
|
95
|
-
|
|
96
|
-
## Shortcuts — skip the question
|
|
97
|
-
|
|
98
|
-
If the user already signals a level, respond at that level immediately without asking:
|
|
99
|
-
|
|
100
|
-
| What they say | Level |
|
|
101
|
-
|----------------------------------------------------|-------|
|
|
102
|
-
| "1" / "25% depth" / "short version" / "brief answer" / "tldr" | 25% |
|
|
103
|
-
| "2" / "50% depth" / "moderate depth" / "balanced answer" | 50% |
|
|
104
|
-
| "3" / "75% depth" / "detailed answer" / "thorough answer" | 75% |
|
|
105
|
-
| "4" / "100% depth" / "exhaustive answer" / "full deep dive" | 100% |
|
|
106
|
-
|
|
107
|
-
If the user set a level earlier in the session, **maintain it silently** for subsequent responses unless they change it.
|
|
108
|
-
|
|
109
|
-
## Precision note
|
|
110
|
-
|
|
111
|
-
This skill uses heuristic estimation — no real tokenizer. Accuracy ~85-90%, variance ±15%. Always show the disclaimer.
|
|
112
|
-
|
|
113
|
-
## Examples
|
|
114
|
-
|
|
115
|
-
### Triggers
|
|
116
|
-
|
|
117
|
-
- "Give me the short version first."
|
|
118
|
-
- "How many tokens will your answer use?"
|
|
119
|
-
- "Respond at 50% depth."
|
|
120
|
-
- "I want the exhaustive answer, not the summary."
|
|
121
|
-
- "Dame la version corta y luego la detallada."
|
|
122
|
-
|
|
123
|
-
### Does Not Trigger
|
|
124
|
-
|
|
125
|
-
- "What is a JWT token?"
|
|
126
|
-
- "The checkout flow uses a payment token."
|
|
127
|
-
- "Is this normal?"
|
|
128
|
-
- "Complete the refactor."
|
|
129
|
-
- Follow-up questions after the user already chose a depth for the session
|
|
130
|
-
|
|
131
|
-
## Source
|
|
132
|
-
|
|
133
|
-
Standalone skill from [TBA — Token Budget Advisor for Claude Code](https://github.com/Xabilimon1/Token-Budget-Advisor-Claude-Code-).
|
|
134
|
-
Original project also ships a Python estimator script, but this repository keeps the skill self-contained and heuristic-only.
|