@olives/devos 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/AGENTS.md +316 -0
- package/.agents/README.md +55 -0
- package/.agents/agents/architect.md +18 -0
- package/.agents/agents/dba.md +25 -0
- package/.agents/agents/developer.md +40 -0
- package/.agents/agents/devops.md +18 -0
- package/.agents/agents/memory-manager.md +38 -0
- package/.agents/agents/orchestrator.md +92 -0
- package/.agents/agents/qa.md +53 -0
- package/.agents/agents/release-manager.md +41 -0
- package/.agents/agents/researcher.md +19 -0
- package/.agents/agents/security.md +27 -0
- package/.agents/agents/tester.md +21 -0
- package/.agents/commands/README.md +42 -0
- package/.agents/commands/architect.md +16 -0
- package/.agents/commands/commit.md +15 -0
- package/.agents/commands/deploy.md +18 -0
- package/.agents/commands/fix.md +19 -0
- package/.agents/commands/refactor.md +19 -0
- package/.agents/commands/research.md +19 -0
- package/.agents/commands/review.md +21 -0
- package/.agents/commands/secure.md +23 -0
- package/.agents/commands/status.md +16 -0
- package/.agents/commands/test.md +16 -0
- package/.agents/scripts/commit.sh +73 -0
- package/.agents/scripts/install-hooks.sh +72 -0
- package/.agents/skills/agent-browser/SKILL.md +50 -0
- package/.agents/skills/agent-development/SKILL.md +415 -0
- package/.agents/skills/agent-development/examples/agent-creation-prompt.md +238 -0
- package/.agents/skills/agent-development/examples/complete-agent-examples.md +427 -0
- package/.agents/skills/agent-development/references/agent-creation-system-prompt.md +207 -0
- package/.agents/skills/agent-development/references/system-prompt-design.md +411 -0
- package/.agents/skills/agent-development/references/triggering-examples.md +491 -0
- package/.agents/skills/agent-development/scripts/validate-agent.sh +217 -0
- package/.agents/skills/backend-dev-guidelines/SKILL.md +352 -0
- package/.agents/skills/backend-dev-guidelines/resources/architecture-overview.md +451 -0
- package/.agents/skills/backend-dev-guidelines/resources/async-and-errors.md +307 -0
- package/.agents/skills/backend-dev-guidelines/resources/complete-examples.md +638 -0
- package/.agents/skills/backend-dev-guidelines/resources/configuration.md +275 -0
- package/.agents/skills/backend-dev-guidelines/resources/database-patterns.md +224 -0
- package/.agents/skills/backend-dev-guidelines/resources/middleware-guide.md +213 -0
- package/.agents/skills/backend-dev-guidelines/resources/routing-and-controllers.md +756 -0
- package/.agents/skills/backend-dev-guidelines/resources/sentry-and-monitoring.md +336 -0
- package/.agents/skills/backend-dev-guidelines/resources/services-and-repositories.md +789 -0
- package/.agents/skills/backend-dev-guidelines/resources/testing-guide.md +235 -0
- package/.agents/skills/backend-dev-guidelines/resources/validation-patterns.md +754 -0
- package/.agents/skills/backend-development/SKILL.md +156 -0
- package/.agents/skills/backend-patterns/SKILL.md +562 -0
- package/.agents/skills/brainstorming/SKILL.md +159 -0
- package/.agents/skills/brainstorming/scripts/frame-template.html +213 -0
- package/.agents/skills/brainstorming/scripts/helper.js +167 -0
- package/.agents/skills/brainstorming/scripts/server.cjs +723 -0
- package/.agents/skills/brainstorming/scripts/start-server.sh +209 -0
- package/.agents/skills/brainstorming/scripts/stop-server.sh +120 -0
- package/.agents/skills/brainstorming/spec-document-reviewer-prompt.md +49 -0
- package/.agents/skills/brainstorming/visual-companion.md +291 -0
- package/.agents/skills/code-reviewer/SKILL.md +65 -0
- package/.agents/skills/content-strategy/SKILL.md +365 -0
- package/.agents/skills/content-strategy/evals/evals.json +90 -0
- package/.agents/skills/content-strategy/references/headless-cms.md +194 -0
- package/.agents/skills/deploy-to-vercel/SKILL.md +296 -0
- package/.agents/skills/deploy-to-vercel/resources/deploy-codex.sh +301 -0
- package/.agents/skills/deploy-to-vercel/resources/deploy.sh +301 -0
- package/.agents/skills/deployment-checklist/SKILL.md +119 -0
- package/.agents/skills/design/SKILL.md +170 -0
- package/.agents/skills/design-an-interface/SKILL.md +94 -0
- package/.agents/skills/expose-localhost/SKILL.md +211 -0
- package/.agents/skills/expose-localhost/references/TROUBLESHOOTING.md +27 -0
- package/.agents/skills/find-skills/SKILL.md +142 -0
- package/.agents/skills/frontend-ui-engineering/SKILL.md +328 -0
- package/.agents/skills/git-commit/SKILL.md +124 -0
- package/.agents/skills/git-ops/SKILL.md +53 -0
- package/.agents/skills/git-workflow/SKILL.md +167 -0
- package/.agents/skills/google-agents-cli-adk-code/SKILL.md +72 -0
- package/.agents/skills/google-agents-cli-adk-code/references/adk-python.md +937 -0
- package/.agents/skills/google-agents-cli-adk-code/references/adk-workflows.md +507 -0
- package/.agents/skills/google-agents-cli-workflow/SKILL.md +310 -0
- package/.agents/skills/google-agents-cli-workflow/references/commands.md +12 -0
- package/.agents/skills/google-agents-cli-workflow/references/internals.md +24 -0
- package/.agents/skills/google-agents-cli-workflow/references/samples.md +59 -0
- package/.agents/skills/google-agents-cli-workflow/references/spec-template.md +25 -0
- package/.agents/skills/google-agents-cli-workflow/references/terminology.md +11 -0
- package/.agents/skills/grill-me/SKILL.md +47 -0
- package/.agents/skills/grill-with-docs/SKILL.md +7 -0
- package/.agents/skills/human-checkpoint/SKILL.md +21 -0
- package/.agents/skills/image/SKILL.md +340 -0
- package/.agents/skills/image/evals/evals.json +89 -0
- package/.agents/skills/image/references/ai-image-prompting.md +229 -0
- package/.agents/skills/image-generation/SKILL.md +374 -0
- package/.agents/skills/imagegen/LICENSE.txt +201 -0
- package/.agents/skills/imagegen/SKILL.md +279 -0
- package/.agents/skills/imagegen/agents/openai.yaml +6 -0
- package/.agents/skills/imagegen/assets/imagegen-small.svg +5 -0
- package/.agents/skills/imagegen/assets/imagegen.png +0 -0
- package/.agents/skills/imagegen/references/cli.md +160 -0
- package/.agents/skills/imagegen/references/codex-network.md +33 -0
- package/.agents/skills/imagegen/references/image-api.md +49 -0
- package/.agents/skills/imagegen/references/prompting.md +98 -0
- package/.agents/skills/imagegen/references/sample-prompts.md +376 -0
- package/.agents/skills/imagegen/scripts/image_gen.py +926 -0
- package/.agents/skills/imagegen-frontend-web/SKILL.md +987 -0
- package/.agents/skills/laravel-security/SKILL.md +948 -0
- package/.agents/skills/laravel-specialist/SKILL.md +264 -0
- package/.agents/skills/laravel-specialist/references/eloquent.md +351 -0
- package/.agents/skills/laravel-specialist/references/livewire.md +512 -0
- package/.agents/skills/laravel-specialist/references/queues.md +423 -0
- package/.agents/skills/laravel-specialist/references/routing.md +362 -0
- package/.agents/skills/laravel-specialist/references/testing.md +522 -0
- package/.agents/skills/laravel-tdd/SKILL.md +675 -0
- package/.agents/skills/laravel-verification/SKILL.md +180 -0
- package/.agents/skills/modern-web-guidance/SKILL.md +114 -0
- package/.agents/skills/modern-web-guidance/guides/accessibility/accessibility.md +463 -0
- package/.agents/skills/modern-web-guidance/guides/accessibility/accessible-error-announcement.md +207 -0
- package/.agents/skills/modern-web-guidance/guides/built-in-ai/language-detection.md +89 -0
- package/.agents/skills/modern-web-guidance/guides/built-in-ai/language-model.md +189 -0
- package/.agents/skills/modern-web-guidance/guides/built-in-ai/prompt-api.md +189 -0
- package/.agents/skills/modern-web-guidance/guides/built-in-ai/summarizer.md +154 -0
- package/.agents/skills/modern-web-guidance/guides/built-in-ai/translator.md +162 -0
- package/.agents/skills/modern-web-guidance/guides/css/css.md +527 -0
- package/.agents/skills/modern-web-guidance/guides/css/highlight-text-ranges.md +128 -0
- package/.agents/skills/modern-web-guidance/guides/css-layout/css-layout.md +305 -0
- package/.agents/skills/modern-web-guidance/guides/forms/animated-select-picker.md +178 -0
- package/.agents/skills/modern-web-guidance/guides/forms/autofill-address-form.md +75 -0
- package/.agents/skills/modern-web-guidance/guides/forms/autofill-highlight-inputs.md +45 -0
- package/.agents/skills/modern-web-guidance/guides/forms/autofill-payment-form.md +125 -0
- package/.agents/skills/modern-web-guidance/guides/forms/autofill-sign-in-form.md +135 -0
- package/.agents/skills/modern-web-guidance/guides/forms/autofill-sign-up-form.md +145 -0
- package/.agents/skills/modern-web-guidance/guides/forms/brand-consistent-forms.md +255 -0
- package/.agents/skills/modern-web-guidance/guides/forms/branded-select-styling.md +114 -0
- package/.agents/skills/modern-web-guidance/guides/forms/custom-select-picker-layouts.md +103 -0
- package/.agents/skills/modern-web-guidance/guides/forms/form-fields-automatically-fit-contents.md +121 -0
- package/.agents/skills/modern-web-guidance/guides/forms/forms.md +372 -0
- package/.agents/skills/modern-web-guidance/guides/forms/required-field-feedback.md +214 -0
- package/.agents/skills/modern-web-guidance/guides/forms/rich-media-picker.md +132 -0
- package/.agents/skills/modern-web-guidance/guides/forms/select-menu-interaction.md +180 -0
- package/.agents/skills/modern-web-guidance/guides/forms/validate-input-after-interaction.md +258 -0
- package/.agents/skills/modern-web-guidance/guides/html/html.md +407 -0
- package/.agents/skills/modern-web-guidance/guides/passkeys/passkey-authentication.md +205 -0
- package/.agents/skills/modern-web-guidance/guides/passkeys/passkey-conditional-create.md +134 -0
- package/.agents/skills/modern-web-guidance/guides/passkeys/passkey-management.md +211 -0
- package/.agents/skills/modern-web-guidance/guides/passkeys/passkey-reauthentication.md +128 -0
- package/.agents/skills/modern-web-guidance/guides/passkeys/passkey-registration.md +181 -0
- package/.agents/skills/modern-web-guidance/guides/passkeys/passkeys.md +38 -0
- package/.agents/skills/modern-web-guidance/guides/performance/batch-analytics-events.md +154 -0
- package/.agents/skills/modern-web-guidance/guides/performance/break-up-long-tasks.md +60 -0
- package/.agents/skills/modern-web-guidance/guides/performance/calculate-total-foreground-time.md +69 -0
- package/.agents/skills/modern-web-guidance/guides/performance/conditional-async-dependencies.md +71 -0
- package/.agents/skills/modern-web-guidance/guides/performance/defer-rendering-heavy-content.md +106 -0
- package/.agents/skills/modern-web-guidance/guides/performance/defer-work-until-scroll-ends.md +78 -0
- package/.agents/skills/modern-web-guidance/guides/performance/deprioritize-background-fetches.md +37 -0
- package/.agents/skills/modern-web-guidance/guides/performance/detect-initial-visibility-state.md +99 -0
- package/.agents/skills/modern-web-guidance/guides/performance/efficient-background-processing.md +117 -0
- package/.agents/skills/modern-web-guidance/guides/performance/faster-spa-view-transitions.md +79 -0
- package/.agents/skills/modern-web-guidance/guides/performance/full-session-analytics.md +135 -0
- package/.agents/skills/modern-web-guidance/guides/performance/identify-heavy-scripts.md +69 -0
- package/.agents/skills/modern-web-guidance/guides/performance/identify-inp-causes.md +73 -0
- package/.agents/skills/modern-web-guidance/guides/performance/improve-next-page-load-performance.md +119 -0
- package/.agents/skills/modern-web-guidance/guides/performance/interactions-in-complex-layouts.md +78 -0
- package/.agents/skills/modern-web-guidance/guides/performance/optimize-image-priority.md +61 -0
- package/.agents/skills/modern-web-guidance/guides/performance/optimize-preload-priority.md +41 -0
- package/.agents/skills/modern-web-guidance/guides/performance/optimize-script-priority.md +38 -0
- package/.agents/skills/modern-web-guidance/guides/performance/performance.md +366 -0
- package/.agents/skills/modern-web-guidance/guides/performance/resolution-optimized-pseudo-elements.md +47 -0
- package/.agents/skills/modern-web-guidance/guides/performance/schedule-tasks-by-priority.md +59 -0
- package/.agents/skills/modern-web-guidance/guides/performance/sequence-distributed-events.md +76 -0
- package/.agents/skills/modern-web-guidance/guides/privacy/privacy.md +247 -0
- package/.agents/skills/modern-web-guidance/guides/security/security.md +350 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/adapt-scrollbar-to-contrast-preferences.md +74 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/anchor-positioning-tab-underline.md +95 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/animate-element-entry-exit.md +131 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/animate-to-from-top-layer.md +140 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/animate-to-intrinsic-sizes.md +127 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/apply-webgl-shaders.md +239 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/calculate-event-differentials.md +85 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/calculate-with-intrinsic-sizes.md +196 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/capture-location-agnostic-data.md +63 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/carousel-slide-effects.md +187 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/carousel-snap-highlights.md +136 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/child-state-based-styling.md +101 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/complex-shapes.md +73 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/component-specific-light-dark-theme.md +179 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/consistent-cross-document-transitions.md +226 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/content-based-styling.md +118 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/coordinate-global-events.md +79 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/cross-document-transitions.md +127 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/custom-button-actions.md +173 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/customize-scrollbar-color-and-thickness.md +59 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/dark-mode.md +295 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/declarative-dialog-popover-control.md +238 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/deliver-optimized-decorative-images.md +49 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/design-token-reactivity.md +174 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/directional-navigation-transitions.md +125 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/dynamic-sibling-animations.md +54 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/dynamic-sibling-styling.md +98 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/export-html-media-from-canvas.md +256 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/expose-canvas-content-to-browser-features.md +401 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/flicker-free-client-side-ab-testing.md +168 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/fluid-scaling.md +78 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/format-human-readable-durations.md +87 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/group-element-transitions.md +124 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/improve-text-layout-and-legibility.md +76 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/individual-transform-properties.md +92 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/interactive-content-in-3d-scenes.md +383 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/interactive-content-reveal.md +118 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/interest-triggered-action-previews.md +79 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/interest-triggered-tooltips.md +132 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/light-dismiss-a-dialog.md +84 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/manage-recurring-intervals.md +73 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/model-partial-time-concepts.md +96 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/move-dom-element-without-losing-state.md +57 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/navigation-drawer.md +357 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/overflow-clipping-control.md +180 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/parallax-scroll-effects.md +230 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/persistent-app-tours.md +112 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/persistent-toast-notifications.md +30 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/persistent-top-layer-ui.md +48 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/physics-based-easing.md +118 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/platform-controls-dismiss-dialog.md +38 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/position-aware-tooltips.md +154 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/precise-text-alignment.md +99 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/prevent-text-wrapping.md +62 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/pull-to-reveal.md +83 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/reduce-style-repetition.md +87 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/resilient-context-menus-and-nested-dropdowns.md +102 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/same-document-transitions.md +177 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/scroll-entry-exit-effects.md +173 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/scroll-position-aware-elements.md +128 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/scroll-progress-indicator.md +133 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/scroll-snap-realtime-feedback.md +153 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/scroll-snap-state-sync.md +93 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/scroll-target-on-load.md +56 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/scrollability-affordance-hints.md +124 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/scrollytelling.md +181 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/search-hidden-content.md +136 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/shaped-cutouts.md +146 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/shrinking-header-on-scroll.md +126 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/size-aware-styling.md +104 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/soft-edge-content-fade.md +62 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/stabilize-reactive-state.md +72 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/stack-drill-down.md +680 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/style-parent-with-has.md +199 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/support-global-calendar-systems.md +107 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/swipe-to-remove.md +527 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/visually-stable-font-fallbacks.md +49 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/visually-stable-mixed-fonts.md +61 -0
- package/.agents/skills/modern-web-guidance/guides/user-experience/visually-texture-content.md +76 -0
- package/.agents/skills/modern-web-guidance/guides/webmcp/agentic-forms.md +116 -0
- package/.agents/skills/modern-web-guidance/guides/webmcp/agentic-javascript-tools.md +116 -0
- package/.agents/skills/modern-web-guidance/guides/webmcp/webmcp.md +43 -0
- package/.agents/skills/nextjs-app-router-patterns/SKILL.md +114 -0
- package/.agents/skills/nextjs-app-router-patterns/references/details.md +428 -0
- package/.agents/skills/nextjs-developer/SKILL.md +145 -0
- package/.agents/skills/nextjs-developer/references/app-router.md +311 -0
- package/.agents/skills/nextjs-developer/references/data-fetching.md +482 -0
- package/.agents/skills/nextjs-developer/references/deployment.md +545 -0
- package/.agents/skills/nextjs-developer/references/server-actions.md +462 -0
- package/.agents/skills/nextjs-developer/references/server-components.md +384 -0
- package/.agents/skills/nextjs-supabase-auth/SKILL.md +313 -0
- package/.agents/skills/nodejs-backend-patterns/SKILL.md +45 -0
- package/.agents/skills/nodejs-backend-patterns/references/advanced-patterns.md +430 -0
- package/.agents/skills/nodejs-backend-patterns/references/details.md +599 -0
- package/.agents/skills/performance-engineer/SKILL.md +181 -0
- package/.agents/skills/project-requirements/SKILL.md +43 -0
- package/.agents/skills/qa/SKILL.md +130 -0
- package/.agents/skills/security-review/LICENSE +22 -0
- package/.agents/skills/security-review/SKILL.md +312 -0
- package/.agents/skills/security-review/infrastructure/docker.md +432 -0
- package/.agents/skills/security-review/languages/javascript.md +387 -0
- package/.agents/skills/security-review/languages/python.md +363 -0
- package/.agents/skills/security-review/references/api-security.md +519 -0
- package/.agents/skills/security-review/references/authentication.md +353 -0
- package/.agents/skills/security-review/references/authorization.md +372 -0
- package/.agents/skills/security-review/references/business-logic.md +443 -0
- package/.agents/skills/security-review/references/cryptography.md +329 -0
- package/.agents/skills/security-review/references/csrf.md +398 -0
- package/.agents/skills/security-review/references/data-protection.md +378 -0
- package/.agents/skills/security-review/references/deserialization.md +410 -0
- package/.agents/skills/security-review/references/error-handling.md +436 -0
- package/.agents/skills/security-review/references/file-security.md +457 -0
- package/.agents/skills/security-review/references/injection.md +259 -0
- package/.agents/skills/security-review/references/logging.md +433 -0
- package/.agents/skills/security-review/references/misconfiguration.md +435 -0
- package/.agents/skills/security-review/references/modern-threats.md +475 -0
- package/.agents/skills/security-review/references/ssrf.md +413 -0
- package/.agents/skills/security-review/references/supply-chain.md +405 -0
- package/.agents/skills/security-review/references/xss.md +336 -0
- package/.agents/skills/seo-aeo-best-practices/SKILL.md +37 -0
- package/.agents/skills/seo-aeo-best-practices/references/aeo-considerations.md +159 -0
- package/.agents/skills/seo-aeo-best-practices/references/eeat-principles.md +127 -0
- package/.agents/skills/seo-aeo-best-practices/references/structured-data.md +183 -0
- package/.agents/skills/seo-aeo-best-practices/references/technical-seo.md +188 -0
- package/.agents/skills/seo-geo/.claude-plugin/plugin.json +29 -0
- package/.agents/skills/seo-geo/SKILL.md +250 -0
- package/.agents/skills/seo-geo/examples/opc-skills-case-study.md +330 -0
- package/.agents/skills/seo-geo/references/geo-research.md +319 -0
- package/.agents/skills/seo-geo/references/google-docs-summary.md +65 -0
- package/.agents/skills/seo-geo/references/platform-algorithms.md +354 -0
- package/.agents/skills/seo-geo/references/schema-templates.md +517 -0
- package/.agents/skills/seo-geo/references/seo-checklist.md +249 -0
- package/.agents/skills/seo-geo/references/tools-and-apis.md +313 -0
- package/.agents/skills/seo-geo/scripts/autocomplete_ideas.py +74 -0
- package/.agents/skills/seo-geo/scripts/backlinks.py +37 -0
- package/.agents/skills/seo-geo/scripts/competitor_gap.py +80 -0
- package/.agents/skills/seo-geo/scripts/credential.py +12 -0
- package/.agents/skills/seo-geo/scripts/dataforseo_api.py +104 -0
- package/.agents/skills/seo-geo/scripts/domain_overview.py +44 -0
- package/.agents/skills/seo-geo/scripts/keyword_research.py +38 -0
- package/.agents/skills/seo-geo/scripts/related_keywords.py +84 -0
- package/.agents/skills/seo-geo/scripts/seo_audit.py +151 -0
- package/.agents/skills/seo-geo/scripts/serp_analysis.py +41 -0
- package/.agents/skills/shadcn-ui/README.md +248 -0
- package/.agents/skills/shadcn-ui/SKILL.md +326 -0
- package/.agents/skills/shadcn-ui/examples/auth-layout.tsx +177 -0
- package/.agents/skills/shadcn-ui/examples/data-table.tsx +313 -0
- package/.agents/skills/shadcn-ui/examples/form-pattern.tsx +177 -0
- package/.agents/skills/shadcn-ui/resources/component-catalog.md +481 -0
- package/.agents/skills/shadcn-ui/resources/customization-guide.md +516 -0
- package/.agents/skills/shadcn-ui/resources/migration-guide.md +463 -0
- package/.agents/skills/shadcn-ui/resources/setup-guide.md +412 -0
- package/.agents/skills/shadcn-ui/scripts/verify-setup.sh +134 -0
- package/.agents/skills/skill-creator/LICENSE.txt +202 -0
- package/.agents/skills/skill-creator/SKILL.md +485 -0
- package/.agents/skills/skill-creator/agents/analyzer.md +274 -0
- package/.agents/skills/skill-creator/agents/comparator.md +202 -0
- package/.agents/skills/skill-creator/agents/grader.md +223 -0
- package/.agents/skills/skill-creator/assets/eval_review.html +146 -0
- package/.agents/skills/skill-creator/eval-viewer/generate_review.py +471 -0
- package/.agents/skills/skill-creator/eval-viewer/viewer.html +1325 -0
- package/.agents/skills/skill-creator/references/schemas.md +430 -0
- package/.agents/skills/skill-creator/scripts/__init__.py +0 -0
- package/.agents/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
- package/.agents/skills/skill-creator/scripts/generate_report.py +326 -0
- package/.agents/skills/skill-creator/scripts/improve_description.py +247 -0
- package/.agents/skills/skill-creator/scripts/package_skill.py +136 -0
- package/.agents/skills/skill-creator/scripts/quick_validate.py +103 -0
- package/.agents/skills/skill-creator/scripts/run_eval.py +310 -0
- package/.agents/skills/skill-creator/scripts/run_loop.py +328 -0
- package/.agents/skills/skill-creator/scripts/utils.py +47 -0
- package/.agents/skills/stacks/SKILL.md +21 -0
- package/.agents/skills/stacks/django.md +187 -0
- package/.agents/skills/stacks/express.md +16 -0
- package/.agents/skills/stacks/fastapi.md +17 -0
- package/.agents/skills/stacks/laravel.md +18 -0
- package/.agents/skills/stacks/nextjs.md +20 -0
- package/.agents/skills/stacks/react-native.md +170 -0
- package/.agents/skills/supabase/CHANGELOG.md +35 -0
- package/.agents/skills/supabase/SKILL.md +135 -0
- package/.agents/skills/supabase/assets/feedback-issue-template.md +17 -0
- package/.agents/skills/supabase/references/skill-feedback.md +17 -0
- package/.agents/skills/supabase-postgres-best-practices/CHANGELOG.md +29 -0
- package/.agents/skills/supabase-postgres-best-practices/SKILL.md +64 -0
- package/.agents/skills/supabase-postgres-best-practices/references/_contributing.md +170 -0
- package/.agents/skills/supabase-postgres-best-practices/references/_sections.md +39 -0
- package/.agents/skills/supabase-postgres-best-practices/references/_template.md +34 -0
- package/.agents/skills/supabase-postgres-best-practices/references/advanced-full-text-search.md +55 -0
- package/.agents/skills/supabase-postgres-best-practices/references/advanced-jsonb-indexing.md +49 -0
- package/.agents/skills/supabase-postgres-best-practices/references/conn-idle-timeout.md +46 -0
- package/.agents/skills/supabase-postgres-best-practices/references/conn-limits.md +44 -0
- package/.agents/skills/supabase-postgres-best-practices/references/conn-pooling.md +41 -0
- package/.agents/skills/supabase-postgres-best-practices/references/conn-prepared-statements.md +46 -0
- package/.agents/skills/supabase-postgres-best-practices/references/data-batch-inserts.md +54 -0
- package/.agents/skills/supabase-postgres-best-practices/references/data-n-plus-one.md +53 -0
- package/.agents/skills/supabase-postgres-best-practices/references/data-pagination.md +50 -0
- package/.agents/skills/supabase-postgres-best-practices/references/data-upsert.md +50 -0
- package/.agents/skills/supabase-postgres-best-practices/references/lock-advisory.md +56 -0
- package/.agents/skills/supabase-postgres-best-practices/references/lock-deadlock-prevention.md +68 -0
- package/.agents/skills/supabase-postgres-best-practices/references/lock-short-transactions.md +50 -0
- package/.agents/skills/supabase-postgres-best-practices/references/lock-skip-locked.md +54 -0
- package/.agents/skills/supabase-postgres-best-practices/references/monitor-explain-analyze.md +45 -0
- package/.agents/skills/supabase-postgres-best-practices/references/monitor-pg-stat-statements.md +55 -0
- package/.agents/skills/supabase-postgres-best-practices/references/monitor-vacuum-analyze.md +55 -0
- package/.agents/skills/supabase-postgres-best-practices/references/query-composite-indexes.md +44 -0
- package/.agents/skills/supabase-postgres-best-practices/references/query-covering-indexes.md +40 -0
- package/.agents/skills/supabase-postgres-best-practices/references/query-index-types.md +48 -0
- package/.agents/skills/supabase-postgres-best-practices/references/query-missing-indexes.md +43 -0
- package/.agents/skills/supabase-postgres-best-practices/references/query-partial-indexes.md +45 -0
- package/.agents/skills/supabase-postgres-best-practices/references/schema-constraints.md +80 -0
- package/.agents/skills/supabase-postgres-best-practices/references/schema-data-types.md +46 -0
- package/.agents/skills/supabase-postgres-best-practices/references/schema-foreign-key-indexes.md +59 -0
- package/.agents/skills/supabase-postgres-best-practices/references/schema-lowercase-identifiers.md +55 -0
- package/.agents/skills/supabase-postgres-best-practices/references/schema-partitioning.md +55 -0
- package/.agents/skills/supabase-postgres-best-practices/references/schema-primary-keys.md +61 -0
- package/.agents/skills/supabase-postgres-best-practices/references/security-privileges.md +54 -0
- package/.agents/skills/supabase-postgres-best-practices/references/security-rls-basics.md +50 -0
- package/.agents/skills/supabase-postgres-best-practices/references/security-rls-performance.md +63 -0
- package/.agents/skills/task-contract/SKILL.md +29 -0
- package/.agents/skills/token-optimization/SKILL.md +40 -0
- package/.agents/skills/ui-designer/SKILL.md +76 -0
- package/.agents/skills/ui-ux-pro-max/SKILL.md +704 -0
- package/.agents/skills/ui-ux-pro-max/data/_sync_all.py +414 -0
- package/.agents/skills/ui-ux-pro-max/data/app-interface.csv +31 -0
- package/.agents/skills/ui-ux-pro-max/data/charts.csv +26 -0
- package/.agents/skills/ui-ux-pro-max/data/colors.csv +162 -0
- package/.agents/skills/ui-ux-pro-max/data/design.csv +1776 -0
- package/.agents/skills/ui-ux-pro-max/data/draft.csv +1779 -0
- package/.agents/skills/ui-ux-pro-max/data/google-fonts.csv +1924 -0
- package/.agents/skills/ui-ux-pro-max/data/icons.csv +106 -0
- package/.agents/skills/ui-ux-pro-max/data/landing.csv +35 -0
- package/.agents/skills/ui-ux-pro-max/data/motion.csv +17 -0
- package/.agents/skills/ui-ux-pro-max/data/products.csv +162 -0
- package/.agents/skills/ui-ux-pro-max/data/react-performance.csv +45 -0
- package/.agents/skills/ui-ux-pro-max/data/stacks/angular.csv +51 -0
- package/.agents/skills/ui-ux-pro-max/data/stacks/astro.csv +54 -0
- package/.agents/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
- package/.agents/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
- package/.agents/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
- package/.agents/skills/ui-ux-pro-max/data/stacks/laravel.csv +51 -0
- package/.agents/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
- package/.agents/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
- package/.agents/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
- package/.agents/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/.agents/skills/ui-ux-pro-max/data/stacks/react.csv +54 -0
- package/.agents/skills/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
- package/.agents/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
- package/.agents/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
- package/.agents/skills/ui-ux-pro-max/data/stacks/threejs.csv +54 -0
- package/.agents/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -0
- package/.agents/skills/ui-ux-pro-max/data/styles.csv +85 -0
- package/.agents/skills/ui-ux-pro-max/data/typography.csv +74 -0
- package/.agents/skills/ui-ux-pro-max/data/ui-reasoning.csv +162 -0
- package/.agents/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/.agents/skills/ui-ux-pro-max/scripts/core.py +274 -0
- package/.agents/skills/ui-ux-pro-max/scripts/design_system.py +1329 -0
- package/.agents/skills/ui-ux-pro-max/scripts/search.py +127 -0
- package/.agents/skills/vercel-cli-with-tokens/SKILL.md +353 -0
- package/.agents/skills/vercel-composition-patterns/AGENTS.md +946 -0
- package/.agents/skills/vercel-composition-patterns/README.md +60 -0
- package/.agents/skills/vercel-composition-patterns/SKILL.md +89 -0
- package/.agents/skills/vercel-composition-patterns/metadata.json +11 -0
- package/.agents/skills/vercel-composition-patterns/rules/_sections.md +29 -0
- package/.agents/skills/vercel-composition-patterns/rules/_template.md +24 -0
- package/.agents/skills/vercel-composition-patterns/rules/architecture-avoid-boolean-props.md +100 -0
- package/.agents/skills/vercel-composition-patterns/rules/architecture-compound-components.md +112 -0
- package/.agents/skills/vercel-composition-patterns/rules/patterns-children-over-render-props.md +87 -0
- package/.agents/skills/vercel-composition-patterns/rules/patterns-explicit-variants.md +100 -0
- package/.agents/skills/vercel-composition-patterns/rules/react19-no-forwardref.md +42 -0
- package/.agents/skills/vercel-composition-patterns/rules/state-context-interface.md +191 -0
- package/.agents/skills/vercel-composition-patterns/rules/state-decouple-implementation.md +113 -0
- package/.agents/skills/vercel-composition-patterns/rules/state-lift-state.md +125 -0
- package/.agents/skills/vercel-optimize/AGENTS.md +48 -0
- package/.agents/skills/vercel-optimize/CONTRIBUTING.md +41 -0
- package/.agents/skills/vercel-optimize/README.md +91 -0
- package/.agents/skills/vercel-optimize/SKILL.md +322 -0
- package/.agents/skills/vercel-optimize/lib/auth-route.mjs +23 -0
- package/.agents/skills/vercel-optimize/lib/budget-summary.mjs +182 -0
- package/.agents/skills/vercel-optimize/lib/citations.mjs +139 -0
- package/.agents/skills/vercel-optimize/lib/cost-coverage.mjs +143 -0
- package/.agents/skills/vercel-optimize/lib/dedup-recs.mjs +325 -0
- package/.agents/skills/vercel-optimize/lib/deep-dive.mjs +350 -0
- package/.agents/skills/vercel-optimize/lib/display-labels.mjs +185 -0
- package/.agents/skills/vercel-optimize/lib/extract-claims.mjs +550 -0
- package/.agents/skills/vercel-optimize/lib/framework-support.mjs +67 -0
- package/.agents/skills/vercel-optimize/lib/gates/build-minutes-fanout.mjs +69 -0
- package/.agents/skills/vercel-optimize/lib/gates/cold-start.mjs +66 -0
- package/.agents/skills/vercel-optimize/lib/gates/contract.mjs +79 -0
- package/.agents/skills/vercel-optimize/lib/gates/cwv-poor.mjs +87 -0
- package/.agents/skills/vercel-optimize/lib/gates/external-api-slow.mjs +55 -0
- package/.agents/skills/vercel-optimize/lib/gates/hard-gates.mjs +73 -0
- package/.agents/skills/vercel-optimize/lib/gates/index.mjs +45 -0
- package/.agents/skills/vercel-optimize/lib/gates/isr-overrevalidation.mjs +62 -0
- package/.agents/skills/vercel-optimize/lib/gates/middleware-heavy.mjs +51 -0
- package/.agents/skills/vercel-optimize/lib/gates/observability-events-attribution.mjs +56 -0
- package/.agents/skills/vercel-optimize/lib/gates/platform-bot-protection.mjs +115 -0
- package/.agents/skills/vercel-optimize/lib/gates/platform-fluid-compute.mjs +83 -0
- package/.agents/skills/vercel-optimize/lib/gates/region-misconfig.mjs +64 -0
- package/.agents/skills/vercel-optimize/lib/gates/route-errors.mjs +80 -0
- package/.agents/skills/vercel-optimize/lib/gates/scanner-driven.mjs +122 -0
- package/.agents/skills/vercel-optimize/lib/gates/select-candidates.mjs +134 -0
- package/.agents/skills/vercel-optimize/lib/gates/slow-route.mjs +88 -0
- package/.agents/skills/vercel-optimize/lib/gates/types.d.ts +38 -0
- package/.agents/skills/vercel-optimize/lib/gates/uncached-route.mjs +93 -0
- package/.agents/skills/vercel-optimize/lib/gates/usage-spike-triage.mjs +121 -0
- package/.agents/skills/vercel-optimize/lib/grade-recommendation.mjs +155 -0
- package/.agents/skills/vercel-optimize/lib/impact-label.mjs +126 -0
- package/.agents/skills/vercel-optimize/lib/impact-magnitude.mjs +60 -0
- package/.agents/skills/vercel-optimize/lib/investigation-brief.mjs +610 -0
- package/.agents/skills/vercel-optimize/lib/observation-safety.mjs +174 -0
- package/.agents/skills/vercel-optimize/lib/project-facts.mjs +99 -0
- package/.agents/skills/vercel-optimize/lib/queries.mjs +315 -0
- package/.agents/skills/vercel-optimize/lib/reconcile-candidates.mjs +372 -0
- package/.agents/skills/vercel-optimize/lib/render-report.mjs +955 -0
- package/.agents/skills/vercel-optimize/lib/repo-root.mjs +86 -0
- package/.agents/skills/vercel-optimize/lib/route-normalize.mjs +220 -0
- package/.agents/skills/vercel-optimize/lib/sanitizers/bot-protection-certainty.mjs +38 -0
- package/.agents/skills/vercel-optimize/lib/sanitizers/cache-tag-invalidation-certainty.mjs +30 -0
- package/.agents/skills/vercel-optimize/lib/sanitizers/count-correct.mjs +52 -0
- package/.agents/skills/vercel-optimize/lib/sanitizers/function-duration-invocations.mjs +38 -0
- package/.agents/skills/vercel-optimize/lib/sanitizers/index.mjs +79 -0
- package/.agents/skills/vercel-optimize/lib/sanitizers/middleware-conflict.mjs +36 -0
- package/.agents/skills/vercel-optimize/lib/sanitizers/missing-citation.mjs +16 -0
- package/.agents/skills/vercel-optimize/lib/sanitizers/pre-release.mjs +74 -0
- package/.agents/skills/vercel-optimize/lib/sanitizers/rate-limit.mjs +67 -0
- package/.agents/skills/vercel-optimize/lib/sanitizers/rendering-mode-mislabel.mjs +38 -0
- package/.agents/skills/vercel-optimize/lib/sanitizers/undeclared-dep.mjs +78 -0
- package/.agents/skills/vercel-optimize/lib/sanitizers/vercel-directive-strip.mjs +37 -0
- package/.agents/skills/vercel-optimize/lib/sanitizers/window-units.mjs +32 -0
- package/.agents/skills/vercel-optimize/lib/scanners/cache-components-suspense-dedupe.mjs +109 -0
- package/.agents/skills/vercel-optimize/lib/scanners/edge-heavy-import.mjs +94 -0
- package/.agents/skills/vercel-optimize/lib/scanners/force-dynamic.mjs +42 -0
- package/.agents/skills/vercel-optimize/lib/scanners/headers-in-page.mjs +44 -0
- package/.agents/skills/vercel-optimize/lib/scanners/index.mjs +35 -0
- package/.agents/skills/vercel-optimize/lib/scanners/large-static-asset.mjs +92 -0
- package/.agents/skills/vercel-optimize/lib/scanners/max-age-without-s-maxage.mjs +42 -0
- package/.agents/skills/vercel-optimize/lib/scanners/middleware-broad-matcher.mjs +55 -0
- package/.agents/skills/vercel-optimize/lib/scanners/missing-cache-headers.mjs +90 -0
- package/.agents/skills/vercel-optimize/lib/scanners/prisma-include-tree.mjs +42 -0
- package/.agents/skills/vercel-optimize/lib/scanners/region-pin-in-config.mjs +88 -0
- package/.agents/skills/vercel-optimize/lib/scanners/source-maps-production.mjs +36 -0
- package/.agents/skills/vercel-optimize/lib/scanners/sveltekit-prerender-missing.mjs +43 -0
- package/.agents/skills/vercel-optimize/lib/scanners/turbo-force-bypass.mjs +129 -0
- package/.agents/skills/vercel-optimize/lib/scanners/unoptimized-image.mjs +113 -0
- package/.agents/skills/vercel-optimize/lib/scanners/use-cache-date-stamp.mjs +106 -0
- package/.agents/skills/vercel-optimize/lib/support-topics.mjs +355 -0
- package/.agents/skills/vercel-optimize/lib/throttle.mjs +273 -0
- package/.agents/skills/vercel-optimize/lib/util.mjs +17 -0
- package/.agents/skills/vercel-optimize/lib/vercel.mjs +864 -0
- package/.agents/skills/vercel-optimize/lib/verify-claim.mjs +1296 -0
- package/.agents/skills/vercel-optimize/lib/workspace-resolver.mjs +521 -0
- package/.agents/skills/vercel-optimize/metadata.json +14 -0
- package/.agents/skills/vercel-optimize/references/candidates.md +176 -0
- package/.agents/skills/vercel-optimize/references/data-collection.md +218 -0
- package/.agents/skills/vercel-optimize/references/docs-library.json +683 -0
- package/.agents/skills/vercel-optimize/references/doctrine.md +105 -0
- package/.agents/skills/vercel-optimize/references/observability-plus.md +108 -0
- package/.agents/skills/vercel-optimize/references/playbooks/README.md +53 -0
- package/.agents/skills/vercel-optimize/references/playbooks/ai-application.md +32 -0
- package/.agents/skills/vercel-optimize/references/playbooks/api-service.md +30 -0
- package/.agents/skills/vercel-optimize/references/playbooks/content-site.md +30 -0
- package/.agents/skills/vercel-optimize/references/playbooks/ecommerce.md +30 -0
- package/.agents/skills/vercel-optimize/references/playbooks/marketing.md +30 -0
- package/.agents/skills/vercel-optimize/references/playbooks/saas.md +31 -0
- package/.agents/skills/vercel-optimize/references/playbooks/sveltekit.md +75 -0
- package/.agents/skills/vercel-optimize/references/recommendations.md +203 -0
- package/.agents/skills/vercel-optimize/references/scanner-patterns.md +251 -0
- package/.agents/skills/vercel-optimize/references/scoring.md +205 -0
- package/.agents/skills/vercel-optimize/references/support-topics/README.md +46 -0
- package/.agents/skills/vercel-optimize/references/support-topics/astro-edge-middleware-scope.md +22 -0
- package/.agents/skills/vercel-optimize/references/support-topics/astro-output-mode-and-isr.md +22 -0
- package/.agents/skills/vercel-optimize/references/support-topics/auth-preserving-parallelization.md +22 -0
- package/.agents/skills/vercel-optimize/references/support-topics/bot-protection-product-guardrails.md +22 -0
- package/.agents/skills/vercel-optimize/references/support-topics/build-minutes-monorepo-fanout.md +23 -0
- package/.agents/skills/vercel-optimize/references/support-topics/cache-components-static-shell-boundaries.md +22 -0
- package/.agents/skills/vercel-optimize/references/support-topics/cache-components-suspense-dedupe-pitfall.md +23 -0
- package/.agents/skills/vercel-optimize/references/support-topics/cdn-cache-auth-safety.md +22 -0
- package/.agents/skills/vercel-optimize/references/support-topics/cold-start-initialization-bundle.md +22 -0
- package/.agents/skills/vercel-optimize/references/support-topics/core-web-vitals-client-bottlenecks.md +22 -0
- package/.agents/skills/vercel-optimize/references/support-topics/database-egress-pooling-region.md +22 -0
- package/.agents/skills/vercel-optimize/references/support-topics/dynamic-rendering-traps.md +22 -0
- package/.agents/skills/vercel-optimize/references/support-topics/external-api-critical-path-platform.md +22 -0
- package/.agents/skills/vercel-optimize/references/support-topics/external-api-critical-path.md +22 -0
- package/.agents/skills/vercel-optimize/references/support-topics/fast-data-transfer-payloads.md +22 -0
- package/.agents/skills/vercel-optimize/references/support-topics/fluid-compute-caveats.md +22 -0
- package/.agents/skills/vercel-optimize/references/support-topics/function-duration-io-and-after.md +22 -0
- package/.agents/skills/vercel-optimize/references/support-topics/function-invocation-reduction.md +22 -0
- package/.agents/skills/vercel-optimize/references/support-topics/function-region-misconfiguration-ttfb.md +23 -0
- package/.agents/skills/vercel-optimize/references/support-topics/image-optimization-cost-control.md +22 -0
- package/.agents/skills/vercel-optimize/references/support-topics/isr-revalidation-static-generation.md +22 -0
- package/.agents/skills/vercel-optimize/references/support-topics/middleware-proxy-edge-cost.md +22 -0
- package/.agents/skills/vercel-optimize/references/support-topics/next-fetch-revalidate-floor.md +22 -0
- package/.agents/skills/vercel-optimize/references/support-topics/next-font-cls-self-hosting.md +23 -0
- package/.agents/skills/vercel-optimize/references/support-topics/next-heavy-ui-lazy-load-boundaries.md +23 -0
- package/.agents/skills/vercel-optimize/references/support-topics/next-image-lcp-preload-sizes.md +23 -0
- package/.agents/skills/vercel-optimize/references/support-topics/next-route-handler-get-cache-defaults.md +22 -0
- package/.agents/skills/vercel-optimize/references/support-topics/next-script-third-party-strategy.md +23 -0
- package/.agents/skills/vercel-optimize/references/support-topics/nextjs-version-cache-semantics.md +22 -0
- package/.agents/skills/vercel-optimize/references/support-topics/not-found-catchall-request-waste.md +23 -0
- package/.agents/skills/vercel-optimize/references/support-topics/nuxt-route-rules-cache-isr.md +22 -0
- package/.agents/skills/vercel-optimize/references/support-topics/observability-events-cost-attribution.md +22 -0
- package/.agents/skills/vercel-optimize/references/support-topics/post-response-work-waituntil.md +22 -0
- package/.agents/skills/vercel-optimize/references/support-topics/route-error-durable-offload.md +22 -0
- package/.agents/skills/vercel-optimize/references/support-topics/route-error-runtime-limits.md +22 -0
- package/.agents/skills/vercel-optimize/references/support-topics/runtime-cache-reusable-data.md +22 -0
- package/.agents/skills/vercel-optimize/references/support-topics/sveltekit-isr-prerender-safety.md +22 -0
- package/.agents/skills/vercel-optimize/references/support-topics/sveltekit-split-cold-start-tradeoff.md +22 -0
- package/.agents/skills/vercel-optimize/references/support-topics/usage-spike-triage.md +22 -0
- package/.agents/skills/vercel-optimize/references/support-topics/use-cache-date-stamp-isr-write-amplifier.md +23 -0
- package/.agents/skills/vercel-optimize/references/support-topics/use-cache-remote-shared-origin-data.md +22 -0
- package/.agents/skills/vercel-optimize/references/support-topics/workflow-resumable-stream-routes.md +23 -0
- package/.agents/skills/vercel-optimize/references/verification.md +102 -0
- package/.agents/skills/vercel-optimize/references/voice.md +76 -0
- package/.agents/skills/vercel-optimize/scripts/budget-summary.mjs +56 -0
- package/.agents/skills/vercel-optimize/scripts/build-docs.mjs +74 -0
- package/.agents/skills/vercel-optimize/scripts/check-citations.mjs +81 -0
- package/.agents/skills/vercel-optimize/scripts/check-docs-fresh.mjs +93 -0
- package/.agents/skills/vercel-optimize/scripts/collect-signals.mjs +576 -0
- package/.agents/skills/vercel-optimize/scripts/collect-sub-agent-outputs.mjs +296 -0
- package/.agents/skills/vercel-optimize/scripts/deep-dive.mjs +319 -0
- package/.agents/skills/vercel-optimize/scripts/gate-investigations.mjs +166 -0
- package/.agents/skills/vercel-optimize/scripts/merge-signals.mjs +192 -0
- package/.agents/skills/vercel-optimize/scripts/prepare-investigation-brief.mjs +231 -0
- package/.agents/skills/vercel-optimize/scripts/reconcile-candidates.mjs +62 -0
- package/.agents/skills/vercel-optimize/scripts/render-report.mjs +437 -0
- package/.agents/skills/vercel-optimize/scripts/scan-codebase.mjs +313 -0
- package/.agents/skills/vercel-optimize/scripts/verify-and-regen.mjs +346 -0
- package/.agents/skills/vercel-optimize/scripts/verify-finding.mjs +19 -0
- package/.agents/skills/vercel-react-best-practices/AGENTS.md +3810 -0
- package/.agents/skills/vercel-react-best-practices/README.md +123 -0
- package/.agents/skills/vercel-react-best-practices/SKILL.md +149 -0
- package/.agents/skills/vercel-react-best-practices/metadata.json +15 -0
- package/.agents/skills/vercel-react-best-practices/rules/_sections.md +46 -0
- package/.agents/skills/vercel-react-best-practices/rules/_template.md +28 -0
- package/.agents/skills/vercel-react-best-practices/rules/advanced-effect-event-deps.md +56 -0
- package/.agents/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/.agents/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
- package/.agents/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
- package/.agents/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
- package/.agents/skills/vercel-react-best-practices/rules/async-cheap-condition-before-await.md +37 -0
- package/.agents/skills/vercel-react-best-practices/rules/async-defer-await.md +82 -0
- package/.agents/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
- package/.agents/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
- package/.agents/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/.agents/skills/vercel-react-best-practices/rules/bundle-analyzable-paths.md +63 -0
- package/.agents/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +60 -0
- package/.agents/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
- package/.agents/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/.agents/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/.agents/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
- package/.agents/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
- package/.agents/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/.agents/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/.agents/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
- package/.agents/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/.agents/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/.agents/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/.agents/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
- package/.agents/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/.agents/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
- package/.agents/skills/vercel-react-best-practices/rules/js-flatmap-filter.md +60 -0
- package/.agents/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/.agents/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
- package/.agents/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
- package/.agents/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/.agents/skills/vercel-react-best-practices/rules/js-request-idle-callback.md +105 -0
- package/.agents/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/.agents/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/.agents/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
- package/.agents/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/.agents/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/.agents/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/.agents/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/.agents/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/.agents/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/.agents/skills/vercel-react-best-practices/rules/rendering-resource-hints.md +85 -0
- package/.agents/skills/vercel-react-best-practices/rules/rendering-script-defer-async.md +68 -0
- package/.agents/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/.agents/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/.agents/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/.agents/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/.agents/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/.agents/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/.agents/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/.agents/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/.agents/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/.agents/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
- package/.agents/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/.agents/skills/vercel-react-best-practices/rules/rerender-no-inline-components.md +82 -0
- package/.agents/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/.agents/skills/vercel-react-best-practices/rules/rerender-split-combined-hooks.md +64 -0
- package/.agents/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
- package/.agents/skills/vercel-react-best-practices/rules/rerender-use-deferred-value.md +59 -0
- package/.agents/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/.agents/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/.agents/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
- package/.agents/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
- package/.agents/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
- package/.agents/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
- package/.agents/skills/vercel-react-best-practices/rules/server-hoist-static-io.md +149 -0
- package/.agents/skills/vercel-react-best-practices/rules/server-no-shared-module-state.md +50 -0
- package/.agents/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/.agents/skills/vercel-react-best-practices/rules/server-parallel-nested-fetching.md +34 -0
- package/.agents/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
- package/.agents/skills/vercel-react-native-skills/AGENTS.md +2897 -0
- package/.agents/skills/vercel-react-native-skills/README.md +165 -0
- package/.agents/skills/vercel-react-native-skills/SKILL.md +121 -0
- package/.agents/skills/vercel-react-native-skills/metadata.json +16 -0
- package/.agents/skills/vercel-react-native-skills/rules/_sections.md +86 -0
- package/.agents/skills/vercel-react-native-skills/rules/_template.md +28 -0
- package/.agents/skills/vercel-react-native-skills/rules/animation-derived-value.md +53 -0
- package/.agents/skills/vercel-react-native-skills/rules/animation-gesture-detector-press.md +95 -0
- package/.agents/skills/vercel-react-native-skills/rules/animation-gpu-properties.md +65 -0
- package/.agents/skills/vercel-react-native-skills/rules/design-system-compound-components.md +66 -0
- package/.agents/skills/vercel-react-native-skills/rules/fonts-config-plugin.md +71 -0
- package/.agents/skills/vercel-react-native-skills/rules/imports-design-system-folder.md +68 -0
- package/.agents/skills/vercel-react-native-skills/rules/js-hoist-intl.md +61 -0
- package/.agents/skills/vercel-react-native-skills/rules/list-performance-callbacks.md +44 -0
- package/.agents/skills/vercel-react-native-skills/rules/list-performance-function-references.md +132 -0
- package/.agents/skills/vercel-react-native-skills/rules/list-performance-images.md +53 -0
- package/.agents/skills/vercel-react-native-skills/rules/list-performance-inline-objects.md +97 -0
- package/.agents/skills/vercel-react-native-skills/rules/list-performance-item-expensive.md +94 -0
- package/.agents/skills/vercel-react-native-skills/rules/list-performance-item-memo.md +82 -0
- package/.agents/skills/vercel-react-native-skills/rules/list-performance-item-types.md +104 -0
- package/.agents/skills/vercel-react-native-skills/rules/list-performance-virtualize.md +67 -0
- package/.agents/skills/vercel-react-native-skills/rules/monorepo-native-deps-in-app.md +46 -0
- package/.agents/skills/vercel-react-native-skills/rules/monorepo-single-dependency-versions.md +63 -0
- package/.agents/skills/vercel-react-native-skills/rules/navigation-native-navigators.md +188 -0
- package/.agents/skills/vercel-react-native-skills/rules/react-compiler-destructure-functions.md +50 -0
- package/.agents/skills/vercel-react-native-skills/rules/react-compiler-reanimated-shared-values.md +48 -0
- package/.agents/skills/vercel-react-native-skills/rules/react-state-dispatcher.md +91 -0
- package/.agents/skills/vercel-react-native-skills/rules/react-state-fallback.md +56 -0
- package/.agents/skills/vercel-react-native-skills/rules/react-state-minimize.md +65 -0
- package/.agents/skills/vercel-react-native-skills/rules/rendering-no-falsy-and.md +74 -0
- package/.agents/skills/vercel-react-native-skills/rules/rendering-text-in-text-component.md +36 -0
- package/.agents/skills/vercel-react-native-skills/rules/scroll-position-no-state.md +82 -0
- package/.agents/skills/vercel-react-native-skills/rules/state-ground-truth.md +80 -0
- package/.agents/skills/vercel-react-native-skills/rules/ui-expo-image.md +66 -0
- package/.agents/skills/vercel-react-native-skills/rules/ui-image-gallery.md +104 -0
- package/.agents/skills/vercel-react-native-skills/rules/ui-measure-views.md +78 -0
- package/.agents/skills/vercel-react-native-skills/rules/ui-menus.md +174 -0
- package/.agents/skills/vercel-react-native-skills/rules/ui-native-modals.md +77 -0
- package/.agents/skills/vercel-react-native-skills/rules/ui-pressable.md +61 -0
- package/.agents/skills/vercel-react-native-skills/rules/ui-safe-area-scroll.md +65 -0
- package/.agents/skills/vercel-react-native-skills/rules/ui-scrollview-content-inset.md +45 -0
- package/.agents/skills/vercel-react-native-skills/rules/ui-styling.md +87 -0
- package/.agents/skills/vercel-react-view-transitions/AGENTS.md +955 -0
- package/.agents/skills/vercel-react-view-transitions/README.md +42 -0
- package/.agents/skills/vercel-react-view-transitions/SKILL.md +320 -0
- package/.agents/skills/vercel-react-view-transitions/metadata.json +12 -0
- package/.agents/skills/vercel-react-view-transitions/references/css-recipes.md +242 -0
- package/.agents/skills/vercel-react-view-transitions/references/implementation.md +182 -0
- package/.agents/skills/vercel-react-view-transitions/references/nextjs.md +176 -0
- package/.agents/skills/vercel-react-view-transitions/references/patterns.md +262 -0
- package/.agents/skills/web-design-guidelines/SKILL.md +39 -0
- package/.agents/skills/workflow-metrics/SKILL.md +18 -0
- package/.agents/skills/writing-guidelines/SKILL.md +39 -0
- package/CODING_STANDARDS.md +49 -0
- package/LICENSE +21 -0
- package/README.md +556 -0
- package/VERSION +1 -0
- package/bin/devos.js +893 -0
- package/docs/.gitkeep +0 -0
- package/docs/ARCHITECTURE.md +114 -0
- package/docs/CHANGELOG.md +61 -0
- package/docs/CURRENT_STATE.md +39 -0
- package/docs/FIELD_REPORT_2026-08-20.md +130 -0
- package/docs/GETTING_STARTED.md +130 -0
- package/docs/LESSONS.md +24 -0
- package/docs/PRE_COMMIT_HOOK.md +152 -0
- package/docs/SLASH_COMMANDS.md +116 -0
- package/docs/TUTORIAL.md +75 -0
- package/package.json +54 -0
- package/scripts/smoke-test.js +167 -0
package/docs/.gitkeep
ADDED
|
File without changes
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# Dev-OS System Architecture
|
|
2
|
+
|
|
3
|
+
## System Architecture Overview
|
|
4
|
+
|
|
5
|
+
Dev-OS uses a multi-agent hierarchy orchestrated by a central coordinator (the Orchestrator). AI outputs are isolated by role and validated by parallel agents before human review.
|
|
6
|
+
|
|
7
|
+
### Agent Hierarchy and Communication Flow
|
|
8
|
+
|
|
9
|
+
```mermaid
|
|
10
|
+
flowchart TD
|
|
11
|
+
Human(Human Lead) --> Orchestrator
|
|
12
|
+
|
|
13
|
+
subgraph EX["Execution"]
|
|
14
|
+
Developer
|
|
15
|
+
Tester
|
|
16
|
+
DevOps
|
|
17
|
+
DBA
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
subgraph QV["Quality and Validation"]
|
|
21
|
+
QA
|
|
22
|
+
Security
|
|
23
|
+
Researcher
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
subgraph SM["Strategy and Memory"]
|
|
27
|
+
Architect
|
|
28
|
+
MemoryManager
|
|
29
|
+
ReleaseManager
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
Orchestrator --> EX
|
|
33
|
+
Orchestrator --> QV
|
|
34
|
+
Orchestrator --> SM
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Standard Feature Delivery (Parallel Gate)
|
|
38
|
+
|
|
39
|
+
```mermaid
|
|
40
|
+
flowchart TD
|
|
41
|
+
Task(New Task) --> Orch[Orchestrator]
|
|
42
|
+
Orch --> Dev[Developer Writes Code]
|
|
43
|
+
Dev --> Gate{Parallel Quality Gate}
|
|
44
|
+
|
|
45
|
+
Gate --> QA[QA Agent Checks Code]
|
|
46
|
+
Gate --> Tester[Tester Agent Runs Tests]
|
|
47
|
+
Gate --> Sec[Security Agent Scans]
|
|
48
|
+
|
|
49
|
+
QA --> Merge1{All Pass?}
|
|
50
|
+
Tester --> Merge1
|
|
51
|
+
Sec --> Merge1
|
|
52
|
+
|
|
53
|
+
Merge1 -- No --> Dev
|
|
54
|
+
Merge1 -- Yes --> Human[Human Approval]
|
|
55
|
+
Human --> Deploy["DevOps / Merge"]
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### Bug Fix Workflow
|
|
59
|
+
|
|
60
|
+
```mermaid
|
|
61
|
+
flowchart TD
|
|
62
|
+
Bug(Bug Report) --> Researcher[Researcher Investigates]
|
|
63
|
+
Researcher --> Dev[Developer Fixes Code]
|
|
64
|
+
Dev --> Tester[Tester Writes Regression Test]
|
|
65
|
+
Tester --> QA[QA Verifies]
|
|
66
|
+
QA --> Human[Human Approval]
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Commit Gate Flow
|
|
70
|
+
|
|
71
|
+
```mermaid
|
|
72
|
+
flowchart LR
|
|
73
|
+
Dev["Agent / Developer"] --> Script[commit.sh]
|
|
74
|
+
Script --> Token[Export DEVOS_COMMIT_APPROVED]
|
|
75
|
+
Token --> Git[git commit]
|
|
76
|
+
Git --> Hook[Pre-commit hook]
|
|
77
|
+
Hook --> Gitleaks[gitleaks Secret Scan]
|
|
78
|
+
Gitleaks -- Pass --> Success[Commit Saved]
|
|
79
|
+
Gitleaks -- Fail --> Reject[Commit Rejected]
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### Memory System Architecture
|
|
83
|
+
|
|
84
|
+
```mermaid
|
|
85
|
+
flowchart TD
|
|
86
|
+
PinnedRules[Pinned Hard Rules] --> Context[Agent Context Window]
|
|
87
|
+
CurrentState[CURRENT_STATE.md] --> Context
|
|
88
|
+
Lessons[LESSONS.md] --> Context
|
|
89
|
+
|
|
90
|
+
Context --> Execution[Agent Execution]
|
|
91
|
+
Execution --> MemoryManager[Memory Manager Agent]
|
|
92
|
+
MemoryManager --> |Updates| CurrentState
|
|
93
|
+
MemoryManager --> |Learns| Lessons
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Slash Command Routing
|
|
97
|
+
|
|
98
|
+
```mermaid
|
|
99
|
+
flowchart LR
|
|
100
|
+
Command["/slash_command"] --> Orch[Orchestrator]
|
|
101
|
+
Orch --> Parse[Read YAML Frontmatter]
|
|
102
|
+
Parse --> Target[Target Agent]
|
|
103
|
+
Target --> Workflow[Execute Workflow / Prompt]
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## Directory Structure
|
|
107
|
+
|
|
108
|
+
- `.agents/`: The core logic of the OS.
|
|
109
|
+
- `agents/`: System prompts for each agent.
|
|
110
|
+
- `commands/`: Slash commands.
|
|
111
|
+
- `skills/`: Agent capabilities.
|
|
112
|
+
- `scripts/`: Tooling (e.g., `commit.sh`).
|
|
113
|
+
- `docs/`: User documentation.
|
|
114
|
+
- `src/` (or similar): The actual project source code being managed.
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to Dev-OS are documented in this file.
|
|
4
|
+
This project follows [Semantic Versioning](https://semver.org/).
|
|
5
|
+
|
|
6
|
+
## [2.1.0] — 2026-09-03
|
|
7
|
+
|
|
8
|
+
- **Official npm Package Scope (`@olives/devos`)**: Formally registered under the official Olives organization on npm as `@olives/devos` (executable CLI binaries remain `devos`, `olives-devos`, and `devos-init`).
|
|
9
|
+
- **`devos update` CLI Command**: Safely refreshes `.agents/`, specialist skills, slash commands, and git hooks in existing projects without overwriting custom documentation or stack coding standards.
|
|
10
|
+
- **Automated Pre-Commit Hook Installation**: `devos init` now automatically runs `install-hooks.sh` to install `.git/hooks/pre-commit` whenever initialized within a Git repository.
|
|
11
|
+
- **Hard Rules Digest in CLAUDE.md**: `bootstrapClaudeMd` injects a complete 14-rule digest directly into `CLAUDE.md` to guarantee AI working agents always load the rules into active context on turn 1.
|
|
12
|
+
- **Solo Session Protocol**: Defined the official minimum viable quality gate in `AGENTS.md` and `CLAUDE.md` for single-agent interactive workflows (freshness check, lint/typecheck/test self-verification, standards review, staged human review, commit gate, state obligation).
|
|
13
|
+
- **Hard Rule #13 (Session-End State Obligation)**: Requires active agents to update `docs/CURRENT_STATE.md` (and `docs/LESSONS.md` on incidents) before concluding any working session modifying code.
|
|
14
|
+
- **Hard Rule #14 (Session-Start Freshness Check)**: Enforces running `git fetch --all --prune` and `git status -sb` before scoping tasks to prevent regressions against stale branches.
|
|
15
|
+
- **Pre-Commit Hook Reference**: Added `docs/PRE_COMMIT_HOOK.md` detailing mechanical gate architecture, Gitleaks scanning, and verification procedures.
|
|
16
|
+
- **Field Audit Report**: Added `docs/FIELD_REPORT_2026-08-20.md` capturing findings from a real-world multi-day project audit and documenting the resolution of all five recommendations.
|
|
17
|
+
|
|
18
|
+
### Security & Hardening
|
|
19
|
+
- **Un-Pipeable Human Approval Gate**: Hardened `commit.sh` to read the approval token directly from the controlling terminal (`/dev/tty`). Piped stdin (e.g. `printf 'approve\n...' | commit.sh`) is rejected by policy; automated CI environments must explicitly export `DEVOS_HEADLESS_COMMIT=1`.
|
|
20
|
+
- **Modern Gitleaks Subcommand**: Replaced legacy `gitleaks protect` with the officially documented `gitleaks git --staged --verbose` in `install-hooks.sh`.
|
|
21
|
+
- **Robust Gate Status Check**: Hardened `install-hooks.sh` from fragile `if [ $? -ne 0 ]` checking to direct command execution testing (`if ! gitleaks git --staged --verbose; then`).
|
|
22
|
+
|
|
23
|
+
## [2.0.0] — 2026-08-14
|
|
24
|
+
|
|
25
|
+
### Added
|
|
26
|
+
- **npm Package (`@olitech010/dev-os`)**: Installable via `npx @olitech010/dev-os init` / `npm install -g @olitech010/dev-os` (the name `devos` on npm belongs to an unrelated 2016 package, and npm blocks unscoped look-alikes such as `dev-os`). Bin commands remain `devos`, `olives-devos`, and `devos-init`
|
|
27
|
+
- **Claude Code Integration**: `devos init` now generates `.claude/commands/` and `.claude/agents/` (with valid frontmatter) from the `.agents/` sources, and bootstraps a project `CLAUDE.md`, so slash commands and agent personas are natively discovered by Claude Code. Skippable with `--no-claude`
|
|
28
|
+
- **CLI Redesign**: Block-letter DEV-OS banner with attribution, TTY/`NO_COLOR`-aware color output, styled section rules, dynamic component counts, and a boxed init summary
|
|
29
|
+
- **Safety**: `devos init` backs up an existing `.agents/` to `.agents/_backup/<timestamp>/` before overwriting; `install-hooks.sh` backs up an existing pre-commit hook; `doctor` now exits non-zero when checks fail
|
|
30
|
+
- **Smoke Test**: `npm test` runs `scripts/smoke-test.js` — a real end-to-end init/doctor/reference-integrity check
|
|
31
|
+
- **Slash Command System**: 10 pre-configured commands (`/review`, `/commit`, `/test`, `/secure`, `/research`, `/status`, `/fix`, `/architect`, `/refactor`, `/deploy`) with YAML frontmatter schema
|
|
32
|
+
- **Memory System**: Project state tracking (`CURRENT_STATE.md`), episodic memory (`LESSONS.md`), context compaction, and pinned safety rules
|
|
33
|
+
- **Circuit Breaker Protocol**: Agent loops exceeding 3 iterations automatically halt and escalate to human
|
|
34
|
+
- **Memory Manager Agent**: Dedicated agent for context preservation and session handoff
|
|
35
|
+
- **Release Manager Agent**: Dedicated agent for versioning, changelogs, and release notes
|
|
36
|
+
- **Parallel Quality Gate**: QA, Tester, and Security now run simultaneously instead of sequentially
|
|
37
|
+
- **Rollback Protocol**: Defined workflow for handling failed deployments
|
|
38
|
+
- **Exploratory Refactoring Workflow**: Safe exploration on throwaway branches
|
|
39
|
+
- **Hard Rules #10-12**: Circuit Breaker, Verify Before Implementing, No Heavy Dependencies Without Approval
|
|
40
|
+
|
|
41
|
+
### Changed
|
|
42
|
+
- **Orchestrator**: Removed TRIVIAL direct-commit loophole — all tasks now route through Developer → QA → Human
|
|
43
|
+
- **Commit Gate**: Added `DEVOS_COMMIT_APPROVED` token export in `commit.sh` for pre-commit hook compatibility
|
|
44
|
+
- **QA vs Tester**: Clarified responsibilities — QA reviews results, Tester owns test creation and execution
|
|
45
|
+
- **Standard Feature Delivery**: Parallelized QA + Tester + Security gate
|
|
46
|
+
- **Staged Review Model**: Agents write code but never auto-commit; human triggers commit after review
|
|
47
|
+
|
|
48
|
+
### Security
|
|
49
|
+
- **Mechanical Secret Scanning**: `gitleaks` integration via Git pre-commit hook
|
|
50
|
+
- **Commit Gate Enforcement**: Raw `git commit` blocked without `DEVOS_COMMIT_APPROVED` token
|
|
51
|
+
- **Hard Rule #8**: Mechanical Commit Gate documented and enforced
|
|
52
|
+
- **Hard Rule #9**: Zero hardcoded secrets policy
|
|
53
|
+
|
|
54
|
+
## [1.0.0] — Initial Release
|
|
55
|
+
|
|
56
|
+
### Added
|
|
57
|
+
- Multi-agent roster: Orchestrator, Developer, QA, Tester, DBA, DevOps, Security, Architect, Researcher
|
|
58
|
+
- Workflow protocols: Standard Feature Delivery, Bug Fix Delivery, Dependency Update
|
|
59
|
+
- Human-in-the-loop commit enforcement via `commit.sh`
|
|
60
|
+
- Skill ecosystem with 50+ modular skills
|
|
61
|
+
- Hard Rules 1-7
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Project State
|
|
2
|
+
|
|
3
|
+
> This file is maintained by the Orchestrator agent. It is updated at each phase transition to preserve context across long sessions.
|
|
4
|
+
|
|
5
|
+
## Current Task
|
|
6
|
+
- **Task:** Dev-OS v2.1.0 release (audit hardening, Gitleaks modernization, update command, official scope @olives/devos).
|
|
7
|
+
- **Branch:** main
|
|
8
|
+
- **Triage Level:** STANDARD
|
|
9
|
+
- **Status:** RELEASE READY (v2.1.0 merged to main, smoke tests passed)
|
|
10
|
+
|
|
11
|
+
## Active Agents
|
|
12
|
+
| Agent | Status | Current Assignment |
|
|
13
|
+
|---|---|---|
|
|
14
|
+
| Orchestrator | ACTIVE | Coordinating PR #9 & #10 consolidation and v2.1.0 release |
|
|
15
|
+
| Developer | ACTIVE | Script hardening in commit.sh, install-hooks.sh, bin/devos.js |
|
|
16
|
+
| QA | ACTIVE | Verifying coding standards, docs consistency, and smoke test pass |
|
|
17
|
+
| Tester | ACTIVE | Running end-to-end smoke tests and testing un-pipeable TTY gate |
|
|
18
|
+
| Security | ACTIVE | Auditing secret scanner gate and commit token protection |
|
|
19
|
+
| DevOps | IDLE | Prepared for npm release and PR merges |
|
|
20
|
+
|
|
21
|
+
## Recent Decisions
|
|
22
|
+
- **Merged PR #9 & PR #10 into feat/devos-v2.1-hardening**: Unified hook reference documentation and field audit report.
|
|
23
|
+
- **Modernized Gitleaks Subcommand**: Swapped `gitleaks protect` for documented `gitleaks git --staged --verbose`.
|
|
24
|
+
- **Hardened Gate Status Evaluation**: Replaced fragile `$?` checking with direct `if ! gitleaks git --staged --verbose; then`.
|
|
25
|
+
- **Un-pipeable Human Approval Token**: Updated `commit.sh` to read directly from `/dev/tty`, blocking automated stdin bypass, with `DEVOS_HEADLESS_COMMIT=1` for authorized headless CI pipelines.
|
|
26
|
+
- **Added Hard Rules Digest in CLAUDE.md**: `bootstrapClaudeMd()` now embeds an active 14-rule digest directly into generated `CLAUDE.md`.
|
|
27
|
+
- **Defined Solo Session Protocol**: Added explicit minimum quality gate to `AGENTS.md` and `CLAUDE.md` for single-agent interactive workflows.
|
|
28
|
+
- **Added Hard Rule #13 (Session-End State Obligation)**: Mandates updating `CURRENT_STATE.md` before concluding sessions.
|
|
29
|
+
- **Added Hard Rule #14 (Session-Start Freshness Check)**: Enforces `git fetch --all --prune` at session start.
|
|
30
|
+
- **Added `devos update` CLI Command**: Safely upgrades `.agents/` and `.claude/` without touching customized docs or standards.
|
|
31
|
+
- **Auto-installed Pre-Commit Hook**: `devos init` now automatically runs `install-hooks.sh` when inside a Git repo.
|
|
32
|
+
- **Registered Package Under @olives/devos**: Configured npm package scope under official olives organization on npm.
|
|
33
|
+
- **Version Bumped to 2.1.0**: Ready for release.
|
|
34
|
+
|
|
35
|
+
## Blockers
|
|
36
|
+
- None.
|
|
37
|
+
|
|
38
|
+
## Context Summary
|
|
39
|
+
Successfully implemented and mechanically verified all five recommendations from the Dadiboes compliance audit (PR #10) and both issues from the pre-commit hook reference (PR #9). Smoke tests pass 100%. Package and docs bumped to v2.1.0.
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
# Field Report: Dev-OS Compliance Audit — dadiboes Session (2026-08-18 to 2026-08-20)
|
|
2
|
+
|
|
3
|
+
> Documentation-only report. No code changes are proposed in this PR; each finding ends
|
|
4
|
+
> with a recommendation for the owner to evaluate and implement.
|
|
5
|
+
|
|
6
|
+
## Context
|
|
7
|
+
|
|
8
|
+
An AI working agent (Claude Code) ran a multi-day session in the `dadiboes` project,
|
|
9
|
+
which has Dev-OS installed. The task: sync the About page content, diagnose why the
|
|
10
|
+
page was missing locally, and unblock seven days of failed Vercel production deploys.
|
|
11
|
+
The task succeeded, but a post-session audit (prompted by the project owner) found that
|
|
12
|
+
several Dev-OS protocols were bypassed or silently skipped. This report documents what
|
|
13
|
+
held, what failed, why it failed, and what would prevent it.
|
|
14
|
+
|
|
15
|
+
## What held
|
|
16
|
+
|
|
17
|
+
- [ OK ] The Mechanical Commit Gate (Hard Rule 8) blocked raw `git commit`; the agent
|
|
18
|
+
routed the commit through `.agents/scripts/commit.sh`.
|
|
19
|
+
- [ OK ] The pre-commit secret scan ran and passed.
|
|
20
|
+
- [ OK ] Conventional commit format was enforced by the script's type whitelist.
|
|
21
|
+
- [ OK ] The agent surfaced its plan and findings to the human before committing
|
|
22
|
+
(Staged Review, in spirit).
|
|
23
|
+
|
|
24
|
+
## What failed, and why
|
|
25
|
+
|
|
26
|
+
### Finding 1: AGENTS.md was never read before work began
|
|
27
|
+
|
|
28
|
+
The generated `CLAUDE.md` says "Read `.agents/AGENTS.md` ... before making changes,"
|
|
29
|
+
but this is a passive pointer. The agent absorbed only the CLAUDE.md digest (commit
|
|
30
|
+
gate, coding standards pointer) and started implementing immediately. It first opened
|
|
31
|
+
AGENTS.md two days later — after the owner asked why the rules were not followed.
|
|
32
|
+
Everything below follows from this one miss.
|
|
33
|
+
|
|
34
|
+
**Root cause:** A pointer in always-loaded context does not compete with a concrete
|
|
35
|
+
user task. Nothing mechanical verifies the read happened.
|
|
36
|
+
|
|
37
|
+
**Recommendation:** Have `devos init` embed a compressed Hard Rules digest (10-15
|
|
38
|
+
lines) directly into the generated CLAUDE.md block, so the rules are in context even
|
|
39
|
+
when the agent never opens AGENTS.md. Alternatively (or additionally), ship a
|
|
40
|
+
SessionStart hook in the generated `.claude/settings.json` that injects the Hard Rules
|
|
41
|
+
into every session. The full AGENTS.md stays as the reference document; the digest is
|
|
42
|
+
the enforcement surface.
|
|
43
|
+
|
|
44
|
+
### Finding 2: The human-approval token is pipeable
|
|
45
|
+
|
|
46
|
+
`commit.sh` reads the approval token from stdin. When the human replied "continue" to
|
|
47
|
+
a message that listed the commit plan, the agent ran:
|
|
48
|
+
|
|
49
|
+
printf 'approve\nfix\n<message>\n' | .agents/scripts/commit.sh
|
|
50
|
+
|
|
51
|
+
The gate passed. The commit was legitimate in substance (the human had seen the exact
|
|
52
|
+
plan), but the gate's design intent — a human physically types the token — was not
|
|
53
|
+
met. An agent acting on a *misread* of user intent would pass the gate identically.
|
|
54
|
+
|
|
55
|
+
**Root cause:** `read -p` consumes piped stdin exactly like interactive input.
|
|
56
|
+
|
|
57
|
+
**Recommendation:** In `commit.sh`, read the token from the controlling terminal
|
|
58
|
+
(`read ... < /dev/tty`) and fail with a clear message when no TTY is available
|
|
59
|
+
(`[ FAIL ] Human approval requires an interactive terminal`). This makes the gate
|
|
60
|
+
mechanically un-pipeable while remaining a one-line change. Consider an explicit
|
|
61
|
+
documented escape hatch (e.g. `DEVOS_HEADLESS_COMMIT=1` plus a logged warning) for CI
|
|
62
|
+
use, so the restriction does not break legitimate automation.
|
|
63
|
+
|
|
64
|
+
### Finding 3: CURRENT_STATE.md and LESSONS.md were not updated
|
|
65
|
+
|
|
66
|
+
The session completed a STANDARD-level task (content sync, staging merge, dependency
|
|
67
|
+
lockfile fix, production deploy) and ended with `docs/CURRENT_STATE.md` still reading
|
|
68
|
+
"Task: (none), Status: IDLE". The owner had to ask for the update. AGENTS.md assigns
|
|
69
|
+
this duty to the Memory Manager "or the Orchestrator when the Memory Manager is not
|
|
70
|
+
active" — but in a plain interactive session, neither persona is active, so the duty
|
|
71
|
+
lands on no one.
|
|
72
|
+
|
|
73
|
+
**Root cause:** State maintenance is specified as an agent-persona responsibility, not
|
|
74
|
+
a session-level obligation. Interactive solo sessions have no defined owner for it.
|
|
75
|
+
|
|
76
|
+
**Recommendation:** Two options, not mutually exclusive:
|
|
77
|
+
1. Add a Hard Rule: "Before ending any working session that changed files, update
|
|
78
|
+
`docs/CURRENT_STATE.md`; log incidents in `docs/LESSONS.md`." Session-level rules
|
|
79
|
+
bind whoever is working, persona or not.
|
|
80
|
+
2. Add a Stop (or PreToolUse-on-commit) hook that warns when source files changed but
|
|
81
|
+
`docs/CURRENT_STATE.md` was not touched in the same session. A warning is enough;
|
|
82
|
+
a hard block would be noisy for trivial changes.
|
|
83
|
+
|
|
84
|
+
### Finding 4: No QA/Tester/Security gate ran
|
|
85
|
+
|
|
86
|
+
Standard Feature Delivery specifies a parallel QA + Tester + Security gate before the
|
|
87
|
+
human checkpoint. None ran. The agent did run `tsc --noEmit` and a full `next build`
|
|
88
|
+
before committing — real verification, but self-verification, not the independent
|
|
89
|
+
review the workflow describes.
|
|
90
|
+
|
|
91
|
+
**Root cause:** The workflow protocols assume an Orchestrator-led multi-agent
|
|
92
|
+
execution. A solo interactive session has no defined minimum protocol, so agents
|
|
93
|
+
improvise. (Related to Finding 3 — the same structural gap.)
|
|
94
|
+
|
|
95
|
+
**Recommendation:** Define an explicit "solo session" profile in AGENTS.md: the
|
|
96
|
+
minimum viable pipeline when no orchestrator is active (e.g. typecheck + build/test +
|
|
97
|
+
self-review against CODING_STANDARDS.md + state update + human commit gate), and when
|
|
98
|
+
a session MUST escalate to the full multi-agent workflow (CRITICAL triage, schema
|
|
99
|
+
changes, security-sensitive code). Right now the honest options are "full ceremony"
|
|
100
|
+
or "nothing", and agents under a concrete task pick nothing.
|
|
101
|
+
|
|
102
|
+
### Finding 5: No session-start freshness check (contributing incident)
|
|
103
|
+
|
|
104
|
+
The session's original confusion — rebuilding an About page that was already live in
|
|
105
|
+
production — happened because the local clone was 31 commits behind `origin/main` and
|
|
106
|
+
had never fetched the `staging` branch. No Dev-OS rule requires a fetch/state check at
|
|
107
|
+
session start.
|
|
108
|
+
|
|
109
|
+
**Recommendation:** Add to the Hard Rules or the generated CLAUDE.md digest: "At
|
|
110
|
+
session start, run `git fetch --all --prune` and check `git status -sb` before scoping
|
|
111
|
+
any task." Cheap, and it prevents a whole class of duplicate/stale work. A SessionStart
|
|
112
|
+
hook could run the fetch automatically and surface behind/ahead counts.
|
|
113
|
+
|
|
114
|
+
## Summary of recommendations & v2.1.0 Resolution
|
|
115
|
+
|
|
116
|
+
| # | Change | Kind | Effort | Resolution in v2.1.0 |
|
|
117
|
+
|---|--------|------|--------|----------------------|
|
|
118
|
+
| 1 | Embed Hard Rules digest into generated CLAUDE.md | Generator + template | Small | **RESOLVED**: `bin/devos.js` `bootstrapClaudeMd` injects full 14-rule digest into `CLAUDE.md`. |
|
|
119
|
+
| 2 | `commit.sh`: read token from `/dev/tty`, fail without TTY, documented CI escape hatch | Script | Small | **RESOLVED**: `commit.sh` reads from `/dev/tty` by default; headless bypass requires `DEVOS_HEADLESS_COMMIT=1`. |
|
|
120
|
+
| 3 | Hard Rule for CURRENT_STATE.md updates at session end | Docs + rules | Small | **RESOLVED**: Added Hard Rule #13 (Session-End State Obligation) to `AGENTS.md` & `CLAUDE.md`. |
|
|
121
|
+
| 4 | Define a "solo session" minimum protocol in AGENTS.md | Docs + rules | Medium | **RESOLVED**: Added dedicated Solo Session Protocol section to `AGENTS.md` & `CLAUDE.md`. |
|
|
122
|
+
| 5 | Session-start fetch/freshness rule | Docs + rules | Small | **RESOLVED**: Added Hard Rule #14 (Session-Start Freshness Check) requiring `git fetch --all --prune`. |
|
|
123
|
+
|
|
124
|
+
## Closing note
|
|
125
|
+
|
|
126
|
+
The failure mode observed was not an agent rejecting the rules — it was the rules
|
|
127
|
+
never entering the agent's working context, and the one mechanical gate being softer
|
|
128
|
+
than it looks. Dev-OS's instinct (mechanical enforcement over trust, per the
|
|
129
|
+
2026-08-10 lesson in its own LESSONS.md) is right. In v2.1.0, all five recommendations
|
|
130
|
+
have been mechanically implemented and verified.
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
# Getting Started with Olives Dev-OS
|
|
2
|
+
|
|
3
|
+
This guide explains how to initialize Dev-OS in a new or existing repository using the standard **Olives Dev-OS CLI** (`devos` / `olives-devos`) and start collaborating with your multi-agent engineering team.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. Installation Options
|
|
8
|
+
|
|
9
|
+
> **Note on the package name:** The npm registry package is **`@olives/devos`** (under the official Olives organization on npm). Once installed, the CLI binaries are `devos`, `olives-devos`, and `devos-init`.
|
|
10
|
+
|
|
11
|
+
### Option A: Global NPM / NPX (Recommended)
|
|
12
|
+
Run the automated installer in your target project root:
|
|
13
|
+
```bash
|
|
14
|
+
npx @olives/devos init
|
|
15
|
+
```
|
|
16
|
+
*(Or install globally: `npm install -g @olives/devos`. After a global install, the command is simply `devos` — the bin name — so you run `devos init`.)*
|
|
17
|
+
|
|
18
|
+
### Option B: Non-Interactive Flag Execution
|
|
19
|
+
For automated environments, CI scripts, or quick setup:
|
|
20
|
+
```bash
|
|
21
|
+
npx @olives/devos init --stack nextjs --existing
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### Option C: Direct GitHub Installation
|
|
25
|
+
Run the latest version straight from GitHub without going through the npm registry:
|
|
26
|
+
```bash
|
|
27
|
+
npx github:olitech1010/dev-os init
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Option D: Local Cloning & Linking (Fallback / Offline)
|
|
31
|
+
If global or `npx` execution fails or is blocked by network policy:
|
|
32
|
+
```bash
|
|
33
|
+
# Clone the Dev-OS repository
|
|
34
|
+
git clone https://github.com/olitech1010/dev-os.git
|
|
35
|
+
cd dev-os
|
|
36
|
+
|
|
37
|
+
# Symlink the CLI globally on your system
|
|
38
|
+
npm link
|
|
39
|
+
|
|
40
|
+
# Go to your project folder and initialize
|
|
41
|
+
cd /path/to/your-target-project
|
|
42
|
+
devos init
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## 2. CLI Command & Diagnostic Reference
|
|
48
|
+
|
|
49
|
+
The Olives Dev-OS CLI provides a full suite of commands modeled after industry standard developer tools (Claude Code, Gemini CLI, gh, Vercel):
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
$ devos --help
|
|
53
|
+
|
|
54
|
+
USAGE
|
|
55
|
+
$ devos <command> [flags]
|
|
56
|
+
|
|
57
|
+
CORE COMMANDS
|
|
58
|
+
init, setup Initialize or update Dev-OS multi-agent environment in target project
|
|
59
|
+
doctor, check Diagnose project setup, permissions, commit script, and health
|
|
60
|
+
list, agents Display active agent personas and installed specialist skills
|
|
61
|
+
status Show active project configuration, detected stack, and health summary
|
|
62
|
+
version Print Dev-OS CLI version, Node runtime, and environment information
|
|
63
|
+
help Display this command reference
|
|
64
|
+
|
|
65
|
+
FLAGS
|
|
66
|
+
-s, --stack <name> Specify target stack (nextjs, laravel, django, react-native, express, fastapi, universal)
|
|
67
|
+
--fresh Non-interactive fresh project initialization
|
|
68
|
+
--existing Non-interactive existing project initialization
|
|
69
|
+
--no-claude Skip generating .claude/ integration files and CLAUDE.md
|
|
70
|
+
--json Output diagnostic and listing results as JSON
|
|
71
|
+
-q, --quiet Suppress header banners and non-essential log messages
|
|
72
|
+
-v, --version Print CLI version
|
|
73
|
+
-h, --help Show command options
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### What `init` Does
|
|
77
|
+
|
|
78
|
+
Beyond copying the `.agents/` system into your project, `devos init`:
|
|
79
|
+
|
|
80
|
+
- **Generates Claude Code integration files.** It compiles the `.agents/` sources into `.claude/commands/` (native slash commands) and `.claude/agents/` (native subagents), and bootstraps a project `CLAUDE.md`. Pass `--no-claude` to skip this step.
|
|
81
|
+
- **Backs up before overwriting.** If a `.agents/` directory already exists, it is backed up to `.agents/_backup/<timestamp>/` before the new files are written, so re-running `init` never destroys local customizations.
|
|
82
|
+
- **Makes scripts executable.** Both `commit.sh` and `install-hooks.sh` are chmod'd during init.
|
|
83
|
+
|
|
84
|
+
### Doctor and CI
|
|
85
|
+
|
|
86
|
+
`devos doctor` exits with a non-zero status code when any required check fails, making it safe to use as a CI gate:
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
devos doctor || exit 1
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
It also runs warn-level checks (reported as `[ WARN ]`, without failing the run) for the pre-commit hook installation and the presence of the `.claude/` integration directory.
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## 3. Development Workflow & Task Triage
|
|
97
|
+
|
|
98
|
+
When you assign a task to the **Orchestrator Agent**, it automatically triages your request:
|
|
99
|
+
|
|
100
|
+
1. **TRIVIAL Tasks (Typos, small config changes, minor CSS):**
|
|
101
|
+
- Delegated to the **Developer Agent** like any other change. Even trivial edits go through the full Developer -> QA -> Human approval chain. The Orchestrator NEVER writes production code or commits directly — there is no fast path that bypasses review.
|
|
102
|
+
2. **STANDARD Tasks (New features, standard bug fixes):**
|
|
103
|
+
- Orchestrator delegates to the **Developer Agent**.
|
|
104
|
+
- When the Developer finishes, the work enters the **parallel quality gate**: the **QA Agent**, **Tester Agent**, and **Security Agent** run in PARALLEL.
|
|
105
|
+
- QA reviews the code against `CODING_STANDARDS.md` (it does not write tests); the Tester owns test creation and execution; Security scans for vulnerabilities. Only when all three pass is human approval requested.
|
|
106
|
+
3. **CRITICAL Tasks (Database schemas, Supabase RLS, infrastructure):**
|
|
107
|
+
- Involves the **DBA Agent**, **Security Agent**, or **DevOps Agent**.
|
|
108
|
+
- Destructive actions (`DROP`, `TRUNCATE`, deployments) require a mandatory dry-run plan and explicit human sign-off.
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## 4. Approving Commits (The Scripted Checkpoint)
|
|
113
|
+
|
|
114
|
+
In Dev-OS, agents are mechanically forbidden from running raw `git commit` commands in the terminal. When code is ready:
|
|
115
|
+
1. The agent calls `./.agents/scripts/commit.sh`.
|
|
116
|
+
2. Execution pauses and prompts you in the terminal:
|
|
117
|
+
```
|
|
118
|
+
Human Approval Token (type 'approve' to proceed):
|
|
119
|
+
```
|
|
120
|
+
3. Type `approve` and press Enter.
|
|
121
|
+
4. The script formats the commit using Conventional Commits and saves your progress securely.
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## 5. Related Documentation
|
|
126
|
+
|
|
127
|
+
- [System Architecture](ARCHITECTURE.md)
|
|
128
|
+
- [Mechanical Pre-Commit Hook Reference](PRE_COMMIT_HOOK.md)
|
|
129
|
+
- [Step-by-Step Tutorial & Glossary](TUTORIAL.md)
|
|
130
|
+
- [Root README](../README.md)
|
package/docs/LESSONS.md
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Lessons Learned
|
|
2
|
+
|
|
3
|
+
> This file is a persistent episodic memory store. When an agent encounters a significant error and resolves it, the root cause and resolution are logged here. Agents SHOULD query this file before starting tasks involving similar domains.
|
|
4
|
+
|
|
5
|
+
## Format
|
|
6
|
+
Each entry follows this structure:
|
|
7
|
+
|
|
8
|
+
```
|
|
9
|
+
### [DATE] — [SHORT TITLE]
|
|
10
|
+
- **Domain:** (e.g., Git, Auth, Deployment, UI, Database)
|
|
11
|
+
- **What went wrong:** (brief description of the failure)
|
|
12
|
+
- **Root cause:** (why it happened)
|
|
13
|
+
- **Resolution:** (how it was fixed)
|
|
14
|
+
- **Prevention rule:** (what to do differently next time)
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
### 2026-08-10 — Hardcoded Secret Leaked in PR
|
|
20
|
+
- **Domain:** Git, Security
|
|
21
|
+
- **What went wrong:** The Orchestrator agent directly wrote code and committed a hardcoded API key into a Pull Request, bypassing the Developer → QA → Human pipeline.
|
|
22
|
+
- **Root cause:** The Orchestrator's TRIVIAL triage level allowed direct code execution and commits. Combined with context window truncation, the agent fell back to raw `git commit` instead of `commit.sh`.
|
|
23
|
+
- **Resolution:** Removed the TRIVIAL direct-commit loophole. Added mechanical pre-commit hooks (`gitleaks` + `DEVOS_COMMIT_APPROVED` gate). Added Hard Rules #8 and #9.
|
|
24
|
+
- **Prevention rule:** Orchestrator NEVER writes production code. All commits route through `commit.sh`. Pre-commit hooks mechanically block secrets.
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
# Mechanical Pre-Commit Hook Reference
|
|
2
|
+
|
|
3
|
+
> Reference documentation for the Git pre-commit hook generated by `.agents/scripts/install-hooks.sh`. This file describes behaviour only. It documents the hook exactly as it ships today, plus the known limits and maintenance items that follow from that behaviour.
|
|
4
|
+
|
|
5
|
+
The pre-commit hook is the mechanical half of the Dev-OS commit gate. The scripted half is `.agents/scripts/commit.sh`, which collects human approval and exports the approval token. The hook is what physically stops a commit when the token is absent or when Gitleaks finds a secret in the staged diff.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 1. Installation
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
./.agents/scripts/install-hooks.sh
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
The installer:
|
|
16
|
+
|
|
17
|
+
1. Resolves the repository root with `git rev-parse --show-toplevel`, and exits `1` with `[ FAIL ]` if the working directory is not inside a Git repository.
|
|
18
|
+
2. Creates `.git/hooks/` if it does not exist.
|
|
19
|
+
3. Backs up an existing `pre-commit` hook **only when that hook does not already contain the string `DEVOS_COMMIT_APPROVED`**. The backup path is `.git/hooks/pre-commit.backup.<YYYYMMDDHHMMSS>` and a `[ WARN ]` line reports it. A hook that already contains the marker is treated as a Dev-OS hook and is overwritten in place without a backup.
|
|
20
|
+
4. Writes the hook body from a quoted heredoc (`<< 'EOF'`), so nothing in the template is expanded at install time — every variable in the hook is evaluated when the hook runs.
|
|
21
|
+
5. Runs `chmod +x` on the hook and prints the install path.
|
|
22
|
+
|
|
23
|
+
`devos init` chmods `install-hooks.sh` but does **not** run it. `devos doctor` reports a missing `.git/hooks/pre-commit` as an optional `[ WARN ]` check, not a failure.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## 2. What the Generated Hook Does
|
|
28
|
+
|
|
29
|
+
The hook runs two stages in order and exits `0` only if both pass.
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
git commit
|
|
33
|
+
│
|
|
34
|
+
▼
|
|
35
|
+
.git/hooks/pre-commit
|
|
36
|
+
│
|
|
37
|
+
├── 1. Commit gate: is DEVOS_COMMIT_APPROVED == "true"?
|
|
38
|
+
│ ↳ No : [ FAIL ] exit 1 ("Direct 'git commit' is disabled by policy")
|
|
39
|
+
│ ↳ Yes : continue
|
|
40
|
+
│
|
|
41
|
+
└── 2. Secret scan: is `gitleaks` on PATH?
|
|
42
|
+
↳ No : [ WARN ] print install hint, skip the scan, continue
|
|
43
|
+
↳ Yes : run the scan against the staged diff
|
|
44
|
+
↳ Leaks found : [ FAIL ] exit 1 ("Hardcoded secret detected")
|
|
45
|
+
↳ Clean : [ OK ] "Secret scan clean."
|
|
46
|
+
│
|
|
47
|
+
▼
|
|
48
|
+
[ OK ] Dev-OS pre-commit checks passed. exit 0
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Stage 1 — The commit gate
|
|
52
|
+
|
|
53
|
+
The hook tests `$DEVOS_COMMIT_APPROVED` against the literal string `true`. Any other value, including an unset variable, aborts the commit with exit status `1` and points the caller at `.agents/scripts/commit.sh`. The failure message also states that exporting `DEVOS_COMMIT_APPROVED=true` is acceptable for an authorized automated pipeline.
|
|
54
|
+
|
|
55
|
+
`commit.sh` satisfies this stage by exporting the variable immediately before it calls `git commit`. The export lives in the script's own shell, so it applies to that one commit and does not leak into the interactive session.
|
|
56
|
+
|
|
57
|
+
The token is a policy control, not a security boundary. It is trivially exportable by anyone who reads the failure message. Its purpose is to make raw `git commit` an explicit, deliberate act rather than a default one — which is precisely the failure mode recorded in [LESSONS.md](LESSONS.md) under "Hardcoded Secret Leaked in PR".
|
|
58
|
+
|
|
59
|
+
### Stage 2 — The Gitleaks secret scan
|
|
60
|
+
|
|
61
|
+
Gitleaks is an **optional soft dependency**. The hook guards the scan with `command -v gitleaks`. When Gitleaks is not installed the hook prints:
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
[ WARN ] 'gitleaks' is not installed on your system.
|
|
65
|
+
Install gitleaks to enable automated mechanical secret scanning: 'brew install gitleaks'
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
and continues to exit `0`. The commit gate from stage 1 still applies, but **no secret scanning happens at all**. A repository can therefore pass every commit through a hook that reports success while performing no scan. Treat `gitleaks version` as part of the setup checklist, not an optional extra.
|
|
69
|
+
|
|
70
|
+
When Gitleaks is present, the hook scans the staged diff and aborts the commit with exit status `1` if any finding is reported.
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## 3. Where the Hook Lives, and Why That Matters
|
|
75
|
+
|
|
76
|
+
The hook is written to `.git/hooks/pre-commit`. **Git does not track the contents of `.git/`.** The hook is therefore not part of any commit, is not pushed, and is not present in any fresh clone.
|
|
77
|
+
|
|
78
|
+
Consequences to plan around:
|
|
79
|
+
|
|
80
|
+
- Every clone of every Dev-OS project must run `./.agents/scripts/install-hooks.sh` by hand before the gate exists on that machine.
|
|
81
|
+
- A contributor who never runs the installer gets no gate and no warning; raw `git commit` simply works for them.
|
|
82
|
+
- CI checkouts have no hook. Any enforcement that must hold for the whole project — rather than for one developer's working copy — has to be duplicated as a server-side check or a CI job.
|
|
83
|
+
- `git commit --no-verify` (`-n`) skips all pre-commit hooks by design. The gate is a guardrail against accident and drift, not a control that survives a determined bypass.
|
|
84
|
+
- The installer overwrites `pre-commit` outright. It does not chain to an existing hook, so a project already using another hook manager (Husky, lefthook, pre-commit) will have that manager's `pre-commit` entry point replaced. The backup described in section 1 preserves the file, but the two hooks do not run together afterwards.
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## 4. Known Issues
|
|
89
|
+
|
|
90
|
+
Two items were raised against the hook template. Both were checked against the source at `.agents/scripts/install-hooks.sh` and against a live Gitleaks install (8.30.1, Homebrew, macOS). One is confirmed; one did not reproduce. Both are recorded here, including the one that did not reproduce, so the question is not re-opened from memory later.
|
|
91
|
+
|
|
92
|
+
### Issue 1 — The hook calls a legacy Gitleaks subcommand (RESOLVED in v2.1.0)
|
|
93
|
+
|
|
94
|
+
The generated hook previously ran:
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
gitleaks protect --staged --verbose
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
`protect` is a legacy subcommand. On Gitleaks 8.30.1+ it no longer appears in the `Available Commands` list printed by `gitleaks --help`. In Dev-OS v2.1.0, this invocation was updated in `.agents/scripts/install-hooks.sh` to the documented current form:
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
gitleaks git --staged --verbose
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Issue 2 — Fragile `$?` testing between commands (HARDENED in v2.1.0)
|
|
107
|
+
|
|
108
|
+
Testing `$?` on a later line is a fragile idiom: inserting an echo or log line can reset `$?` and silently bypass failure handling. In Dev-OS v2.1.0, this was hardened to test the command directly:
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
if ! gitleaks git --staged --verbose; then
|
|
112
|
+
echo ""
|
|
113
|
+
echo "[ FAIL ] GITLEAKS ERROR: Hardcoded secret or API key detected in staged files."
|
|
114
|
+
echo "[ WARN ] Commit aborted to prevent secret leak."
|
|
115
|
+
echo ""
|
|
116
|
+
exit 1
|
|
117
|
+
fi
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
This eliminates the ordering hazard completely.
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## 5. Verifying the Gate Yourself
|
|
125
|
+
|
|
126
|
+
The gate is worth verifying per machine, since installation is manual and Gitleaks is optional. In a scratch repository:
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
git init /tmp/hook-check && cd /tmp/hook-check
|
|
130
|
+
/path/to/dev-os/.agents/scripts/install-hooks.sh
|
|
131
|
+
|
|
132
|
+
# Stage 1: the commit gate should abort with [ FAIL ] and exit 1.
|
|
133
|
+
git commit --allow-empty -m "should be blocked"
|
|
134
|
+
|
|
135
|
+
# Stage 2: the secret scan should abort with [ FAIL ] and exit 1.
|
|
136
|
+
printf 'AWS_KEY = "AKIAIMNOJVGFDXXXE4OA"\n' > leak.txt
|
|
137
|
+
git add leak.txt
|
|
138
|
+
DEVOS_COMMIT_APPROVED=true git commit -m "should also be blocked"
|
|
139
|
+
|
|
140
|
+
git log --oneline # expect no commits
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
If the second command succeeds, check `gitleaks version` first — a missing binary makes the hook warn and continue rather than scan.
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## 6. Related Documentation
|
|
148
|
+
|
|
149
|
+
- [System Architecture](ARCHITECTURE.md) — the Commit Gate Flow diagram
|
|
150
|
+
- [Getting Started](GETTING_STARTED.md) — installation and the scripted checkpoint
|
|
151
|
+
- [Lessons Learned](LESSONS.md) — the incident that motivated the mechanical gate
|
|
152
|
+
- [Root README](../README.md) — commit gate overview and setup steps
|