@exelalfanso/puppets-orchestration 0.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/architect.md +29 -0
- package/.agents/backend.md +33 -0
- package/.agents/debugger.md +29 -0
- package/.agents/explorer.md +29 -0
- package/.agents/frontend.md +33 -0
- package/.agents/orchestrator.md +35 -0
- package/.agents/reviewer.md +42 -0
- package/.agents/tester.md +29 -0
- package/.agents/worker-skills.md +24 -0
- package/AGENTS.md +33 -0
- package/README.md +150 -0
- package/bin/puppets.mjs +152 -0
- package/docs/README.md +64 -0
- package/docs/architecture/decisions/README.md +36 -0
- package/docs/architecture/overview.md +41 -0
- package/docs/engineering/conventions.md +30 -0
- package/docs/engineering/project-orchestration.md +118 -0
- package/docs/engineering/testing-strategy.md +41 -0
- package/docs/javascript-typescript-stack.md +59 -0
- package/docs/product/PRD.md +56 -0
- package/docs/requirements/SRS.md +35 -0
- package/package.json +20 -0
- package/skills/README.md +12 -0
- package/skills/be/backend-architect/SKILL.md +333 -0
- package/skills/be/backend-development-feature-development/SKILL.md +180 -0
- package/skills/be/backend-security-coder/SKILL.md +156 -0
- package/skills/be/nodejs-backend-patterns/SKILL.md +35 -0
- package/skills/be/nodejs-backend-patterns/resources/implementation-playbook.md +1019 -0
- package/skills/fe/frontend-design/LICENSE.txt +177 -0
- package/skills/fe/frontend-design/SKILL.md +71 -0
- package/skills/fe/web-design-guidelines/SKILL.md +39 -0
- package/skills/qa/ai-qa-review/SKILL.md +357 -0
- package/skills/qa/ai-qa-review/references/mutation-testing.md +38 -0
- package/skills/qa/ai-qa-review/references/smell-examples.md +232 -0
- package/skills/qa/ai-qa-review/references/testability-refactors.md +97 -0
- package/skills/qa/coverage-analysis/SKILL.md +308 -0
- package/skills/qa/coverage-analysis/references/ci-gating.md +132 -0
- package/skills/qa/coverage-analysis/references/mutation-testing.md +29 -0
- package/skills/qa/coverage-analysis/references/tool-config.md +195 -0
- package/skills/qa/qa-project-context/SKILL.md +289 -0
- package/skills/qa/qa-project-context/references/examples.md +237 -0
- package/skills/qa/release-readiness/SKILL.md +443 -0
- package/skills/qa/release-readiness/references/communication-templates.md +38 -0
- package/skills/qa/release-readiness/references/rollout-automation.md +47 -0
- package/skills/qa/risk-based-testing/SKILL.md +337 -0
- package/skills/qa/risk-based-testing/references/examples.md +81 -0
- package/skills/react/vercel-composition-patterns/AGENTS.md +946 -0
- package/skills/react/vercel-composition-patterns/README.md +60 -0
- package/skills/react/vercel-composition-patterns/SKILL.md +89 -0
- package/skills/react/vercel-composition-patterns/rules/_sections.md +29 -0
- package/skills/react/vercel-composition-patterns/rules/_template.md +24 -0
- package/skills/react/vercel-composition-patterns/rules/architecture-avoid-boolean-props.md +100 -0
- package/skills/react/vercel-composition-patterns/rules/architecture-compound-components.md +112 -0
- package/skills/react/vercel-composition-patterns/rules/patterns-children-over-render-props.md +87 -0
- package/skills/react/vercel-composition-patterns/rules/patterns-explicit-variants.md +100 -0
- package/skills/react/vercel-composition-patterns/rules/react19-no-forwardref.md +42 -0
- package/skills/react/vercel-composition-patterns/rules/state-context-interface.md +191 -0
- package/skills/react/vercel-composition-patterns/rules/state-decouple-implementation.md +113 -0
- package/skills/react/vercel-composition-patterns/rules/state-lift-state.md +125 -0
- package/skills/react/vercel-react-best-practices/AGENTS.md +3810 -0
- package/skills/react/vercel-react-best-practices/README.md +123 -0
- package/skills/react/vercel-react-best-practices/SKILL.md +149 -0
- package/skills/react/vercel-react-best-practices/rules/_sections.md +46 -0
- package/skills/react/vercel-react-best-practices/rules/_template.md +28 -0
- package/skills/react/vercel-react-best-practices/rules/advanced-effect-event-deps.md +56 -0
- package/skills/react/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/skills/react/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
- package/skills/react/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
- package/skills/react/vercel-react-best-practices/rules/async-api-routes.md +38 -0
- package/skills/react/vercel-react-best-practices/rules/async-cheap-condition-before-await.md +37 -0
- package/skills/react/vercel-react-best-practices/rules/async-defer-await.md +82 -0
- package/skills/react/vercel-react-best-practices/rules/async-dependencies.md +51 -0
- package/skills/react/vercel-react-best-practices/rules/async-parallel.md +28 -0
- package/skills/react/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/skills/react/vercel-react-best-practices/rules/bundle-analyzable-paths.md +63 -0
- package/skills/react/vercel-react-best-practices/rules/bundle-barrel-imports.md +60 -0
- package/skills/react/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
- package/skills/react/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/skills/react/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/skills/react/vercel-react-best-practices/rules/bundle-preload.md +50 -0
- package/skills/react/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
- package/skills/react/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/skills/react/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/skills/react/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
- package/skills/react/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/skills/react/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/skills/react/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/skills/react/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
- package/skills/react/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/skills/react/vercel-react-best-practices/rules/js-early-exit.md +50 -0
- package/skills/react/vercel-react-best-practices/rules/js-flatmap-filter.md +60 -0
- package/skills/react/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/skills/react/vercel-react-best-practices/rules/js-index-maps.md +37 -0
- package/skills/react/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
- package/skills/react/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/skills/react/vercel-react-best-practices/rules/js-request-idle-callback.md +105 -0
- package/skills/react/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/skills/react/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/skills/react/vercel-react-best-practices/rules/rendering-activity.md +26 -0
- package/skills/react/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/skills/react/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/skills/react/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/skills/react/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/skills/react/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/skills/react/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/skills/react/vercel-react-best-practices/rules/rendering-resource-hints.md +85 -0
- package/skills/react/vercel-react-best-practices/rules/rendering-script-defer-async.md +68 -0
- package/skills/react/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/skills/react/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/skills/react/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/skills/react/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/skills/react/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/skills/react/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/skills/react/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/skills/react/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/skills/react/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/skills/react/vercel-react-best-practices/rules/rerender-memo.md +44 -0
- package/skills/react/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/skills/react/vercel-react-best-practices/rules/rerender-no-inline-components.md +82 -0
- package/skills/react/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/skills/react/vercel-react-best-practices/rules/rerender-split-combined-hooks.md +64 -0
- package/skills/react/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
- package/skills/react/vercel-react-best-practices/rules/rerender-use-deferred-value.md +59 -0
- package/skills/react/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/skills/react/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/skills/react/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
- package/skills/react/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
- package/skills/react/vercel-react-best-practices/rules/server-cache-react.md +76 -0
- package/skills/react/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
- package/skills/react/vercel-react-best-practices/rules/server-hoist-static-io.md +149 -0
- package/skills/react/vercel-react-best-practices/rules/server-no-shared-module-state.md +50 -0
- package/skills/react/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/skills/react/vercel-react-best-practices/rules/server-parallel-nested-fetching.md +34 -0
- package/skills/react/vercel-react-best-practices/rules/server-serialization.md +38 -0
- package/skills/vue/create-adaptable-composable/SKILL.md +76 -0
- package/skills/vue/vue-best-practices/SKILL.md +154 -0
- package/skills/vue/vue-best-practices/references/animation-class-based-technique.md +254 -0
- package/skills/vue/vue-best-practices/references/animation-state-driven-technique.md +291 -0
- package/skills/vue/vue-best-practices/references/component-async.md +97 -0
- package/skills/vue/vue-best-practices/references/component-data-flow.md +307 -0
- package/skills/vue/vue-best-practices/references/component-fallthrough-attrs.md +174 -0
- package/skills/vue/vue-best-practices/references/component-keep-alive.md +137 -0
- package/skills/vue/vue-best-practices/references/component-slots.md +216 -0
- package/skills/vue/vue-best-practices/references/component-suspense.md +228 -0
- package/skills/vue/vue-best-practices/references/component-teleport.md +108 -0
- package/skills/vue/vue-best-practices/references/component-transition-group.md +128 -0
- package/skills/vue/vue-best-practices/references/component-transition.md +125 -0
- package/skills/vue/vue-best-practices/references/composables.md +290 -0
- package/skills/vue/vue-best-practices/references/directives.md +162 -0
- package/skills/vue/vue-best-practices/references/perf-avoid-component-abstraction-in-lists.md +159 -0
- package/skills/vue/vue-best-practices/references/perf-v-once-v-memo-directives.md +182 -0
- package/skills/vue/vue-best-practices/references/perf-virtualize-large-lists.md +187 -0
- package/skills/vue/vue-best-practices/references/plugins.md +166 -0
- package/skills/vue/vue-best-practices/references/reactivity.md +344 -0
- package/skills/vue/vue-best-practices/references/render-functions.md +201 -0
- package/skills/vue/vue-best-practices/references/sfc.md +310 -0
- package/skills/vue/vue-best-practices/references/state-management.md +135 -0
- package/skills/vue/vue-best-practices/references/updated-hook-performance.md +187 -0
- package/skills/vue/vue-debug-guides/SKILL.md +202 -0
- package/skills/vue/vue-debug-guides/reference/animation-key-for-rerender.md +160 -0
- package/skills/vue/vue-debug-guides/reference/animation-transitiongroup-performance.md +241 -0
- package/skills/vue/vue-debug-guides/reference/async-component-error-handling.md +115 -0
- package/skills/vue/vue-debug-guides/reference/async-component-keepalive-ref-issue.md +112 -0
- package/skills/vue/vue-debug-guides/reference/async-component-suspense-control.md +84 -0
- package/skills/vue/vue-debug-guides/reference/async-component-vue-router.md +109 -0
- package/skills/vue/vue-debug-guides/reference/attrs-event-listener-merging.md +205 -0
- package/skills/vue/vue-debug-guides/reference/checkbox-true-false-value-form-submission.md +118 -0
- package/skills/vue/vue-debug-guides/reference/cleanup-side-effects.md +172 -0
- package/skills/vue/vue-debug-guides/reference/click-events-on-components.md +180 -0
- package/skills/vue/vue-debug-guides/reference/component-naming-conflicts.md +159 -0
- package/skills/vue/vue-debug-guides/reference/component-ref-requires-defineexpose.md +176 -0
- package/skills/vue/vue-debug-guides/reference/composable-avoid-hidden-side-effects.md +208 -0
- package/skills/vue/vue-debug-guides/reference/composable-call-location-restrictions.md +141 -0
- package/skills/vue/vue-debug-guides/reference/composable-naming-return-pattern.md +139 -0
- package/skills/vue/vue-debug-guides/reference/composable-tovalue-inside-watcheffect.md +182 -0
- package/skills/vue/vue-debug-guides/reference/composition-api-not-functional-programming.md +120 -0
- package/skills/vue/vue-debug-guides/reference/composition-api-script-setup-async-context.md +203 -0
- package/skills/vue/vue-debug-guides/reference/composition-api-vs-react-hooks-differences.md +156 -0
- package/skills/vue/vue-debug-guides/reference/computed-array-mutation.md +148 -0
- package/skills/vue/vue-debug-guides/reference/computed-conditional-dependencies.md +147 -0
- package/skills/vue/vue-debug-guides/reference/computed-no-parameters.md +159 -0
- package/skills/vue/vue-debug-guides/reference/computed-no-side-effects.md +107 -0
- package/skills/vue/vue-debug-guides/reference/computed-return-value-readonly.md +160 -0
- package/skills/vue/vue-debug-guides/reference/configure-app-before-mount.md +89 -0
- package/skills/vue/vue-debug-guides/reference/declare-emits-for-documentation.md +212 -0
- package/skills/vue/vue-debug-guides/reference/define-expose-before-await.md +192 -0
- package/skills/vue/vue-debug-guides/reference/define-model-default-value-sync.md +139 -0
- package/skills/vue/vue-debug-guides/reference/defineEmits-must-be-top-level.md +164 -0
- package/skills/vue/vue-debug-guides/reference/defineEmits-no-runtime-and-type-mixed.md +170 -0
- package/skills/vue/vue-debug-guides/reference/definemodel-object-mutation-no-emit.md +148 -0
- package/skills/vue/vue-debug-guides/reference/dom-update-timing-nexttick.md +90 -0
- package/skills/vue/vue-debug-guides/reference/dynamic-argument-constraints.md +146 -0
- package/skills/vue/vue-debug-guides/reference/dynamic-component-registration-vite.md +147 -0
- package/skills/vue/vue-debug-guides/reference/event-modifier-order-matters.md +101 -0
- package/skills/vue/vue-debug-guides/reference/exact-modifier-for-precise-shortcuts.md +155 -0
- package/skills/vue/vue-debug-guides/reference/fallthrough-attrs-overwrite-vue3.md +159 -0
- package/skills/vue/vue-debug-guides/reference/in-dom-template-parsing-caveats.md +149 -0
- package/skills/vue/vue-debug-guides/reference/inheritattrs-false-for-wrapper-components.md +230 -0
- package/skills/vue/vue-debug-guides/reference/keepalive-router-nested-double-mount.md +222 -0
- package/skills/vue/vue-debug-guides/reference/keepalive-transition-memory-leak.md +144 -0
- package/skills/vue/vue-debug-guides/reference/keyup-modifier-timing.md +137 -0
- package/skills/vue/vue-debug-guides/reference/lifecycle-dom-access-timing.md +216 -0
- package/skills/vue/vue-debug-guides/reference/lifecycle-hooks-synchronous-registration.md +156 -0
- package/skills/vue/vue-debug-guides/reference/lifecycle-ssr-awareness.md +184 -0
- package/skills/vue/vue-debug-guides/reference/local-components-not-in-descendants.md +151 -0
- package/skills/vue/vue-debug-guides/reference/mount-return-value.md +88 -0
- package/skills/vue/vue-debug-guides/reference/multi-root-component-class-attrs.md +93 -0
- package/skills/vue/vue-debug-guides/reference/native-event-collision-with-emits.md +162 -0
- package/skills/vue/vue-debug-guides/reference/no-passive-with-prevent.md +141 -0
- package/skills/vue/vue-debug-guides/reference/no-v-if-with-v-for.md +136 -0
- package/skills/vue/vue-debug-guides/reference/perf-computed-object-stability.md +157 -0
- package/skills/vue/vue-debug-guides/reference/perf-props-stability-update-optimization.md +140 -0
- package/skills/vue/vue-debug-guides/reference/plugin-global-properties-sparingly.md +109 -0
- package/skills/vue/vue-debug-guides/reference/plugin-install-before-mount.md +124 -0
- package/skills/vue/vue-debug-guides/reference/plugin-prefer-provide-inject-over-global-properties.md +120 -0
- package/skills/vue/vue-debug-guides/reference/plugin-typescript-type-augmentation.md +157 -0
- package/skills/vue/vue-debug-guides/reference/prop-defineprops-scope-limitation.md +161 -0
- package/skills/vue/vue-debug-guides/reference/provide-inject-debugging-challenges.md +203 -0
- package/skills/vue/vue-debug-guides/reference/provide-inject-default-value-factory.md +244 -0
- package/skills/vue/vue-debug-guides/reference/provide-inject-reactivity-not-automatic.md +226 -0
- package/skills/vue/vue-debug-guides/reference/provide-inject-synchronous-setup.md +235 -0
- package/skills/vue/vue-debug-guides/reference/reactive-destructuring.md +89 -0
- package/skills/vue/vue-debug-guides/reference/reactivity-debugging-hooks.md +132 -0
- package/skills/vue/vue-debug-guides/reference/reactivity-markraw-for-non-reactive.md +149 -0
- package/skills/vue/vue-debug-guides/reference/reactivity-proxy-identity-hazard.md +96 -0
- package/skills/vue/vue-debug-guides/reference/reactivity-same-tick-batching.md +166 -0
- package/skills/vue/vue-debug-guides/reference/ref-value-access.md +61 -0
- package/skills/vue/vue-debug-guides/reference/refs-in-collections-need-value.md +81 -0
- package/skills/vue/vue-debug-guides/reference/render-function-avoid-internal-vnode-properties.md +151 -0
- package/skills/vue/vue-debug-guides/reference/render-function-vnodes-must-be-unique.md +133 -0
- package/skills/vue/vue-debug-guides/reference/rendering-render-function-h-import-vue3.md +148 -0
- package/skills/vue/vue-debug-guides/reference/rendering-render-function-return-from-setup.md +148 -0
- package/skills/vue/vue-debug-guides/reference/rendering-render-function-slots-as-functions.md +168 -0
- package/skills/vue/vue-debug-guides/reference/rendering-resolve-component-for-string-names.md +231 -0
- package/skills/vue/vue-debug-guides/reference/select-initial-value-ios-bug.md +91 -0
- package/skills/vue/vue-debug-guides/reference/self-referencing-component-name.md +157 -0
- package/skills/vue/vue-debug-guides/reference/sfc-named-exports-forbidden.md +184 -0
- package/skills/vue/vue-debug-guides/reference/sfc-scoped-css-child-component-styling.md +156 -0
- package/skills/vue/vue-debug-guides/reference/sfc-scoped-css-dynamic-content.md +193 -0
- package/skills/vue/vue-debug-guides/reference/sfc-scoped-css-slot-content.md +242 -0
- package/skills/vue/vue-debug-guides/reference/sfc-script-setup-reactivity.md +195 -0
- package/skills/vue/vue-debug-guides/reference/slot-forwarding-to-child-components.md +143 -0
- package/skills/vue/vue-debug-guides/reference/slot-implicit-default-content.md +155 -0
- package/skills/vue/vue-debug-guides/reference/slot-name-reserved-prop.md +109 -0
- package/skills/vue/vue-debug-guides/reference/slot-named-scoped-explicit-default.md +95 -0
- package/skills/vue/vue-debug-guides/reference/slot-render-scope-parent-only.md +135 -0
- package/skills/vue/vue-debug-guides/reference/slot-v-slot-on-components-or-templates-only.md +122 -0
- package/skills/vue/vue-debug-guides/reference/ssr-hydration-mismatch-causes.md +280 -0
- package/skills/vue/vue-debug-guides/reference/ssr-platform-specific-apis.md +256 -0
- package/skills/vue/vue-debug-guides/reference/state-ssr-cross-request-pollution.md +276 -0
- package/skills/vue/vue-debug-guides/reference/suspense-no-builtin-error-handling.md +127 -0
- package/skills/vue/vue-debug-guides/reference/suspense-ssr-hydration-issues.md +159 -0
- package/skills/vue/vue-debug-guides/reference/tailwind-dynamic-class-generation.md +144 -0
- package/skills/vue/vue-debug-guides/reference/teleport-scoped-styles-limitation.md +191 -0
- package/skills/vue/vue-debug-guides/reference/teleport-ssr-hydration.md +152 -0
- package/skills/vue/vue-debug-guides/reference/teleport-target-must-exist.md +113 -0
- package/skills/vue/vue-debug-guides/reference/template-expressions-restrictions.md +114 -0
- package/skills/vue/vue-debug-guides/reference/template-functions-no-side-effects.md +187 -0
- package/skills/vue/vue-debug-guides/reference/template-ref-null-with-v-if.md +123 -0
- package/skills/vue/vue-debug-guides/reference/template-ref-unwrapping-top-level.md +104 -0
- package/skills/vue/vue-debug-guides/reference/template-ref-v-for-order.md +172 -0
- package/skills/vue/vue-debug-guides/reference/textarea-no-interpolation.md +72 -0
- package/skills/vue/vue-debug-guides/reference/transition-group-flip-inline-elements.md +152 -0
- package/skills/vue/vue-debug-guides/reference/transition-group-move-animation-position-absolute.md +130 -0
- package/skills/vue/vue-debug-guides/reference/transition-group-no-default-wrapper-vue3.md +152 -0
- package/skills/vue/vue-debug-guides/reference/transition-js-hooks-done-callback.md +251 -0
- package/skills/vue/vue-debug-guides/reference/transition-nested-duration.md +182 -0
- package/skills/vue/vue-debug-guides/reference/transition-reusable-scoped-style.md +245 -0
- package/skills/vue/vue-debug-guides/reference/transition-router-view-appear.md +193 -0
- package/skills/vue/vue-debug-guides/reference/transition-type-when-mixed.md +172 -0
- package/skills/vue/vue-debug-guides/reference/transition-unmount-hook-timing.md +149 -0
- package/skills/vue/vue-debug-guides/reference/ts-defineprops-boolean-default-false.md +225 -0
- package/skills/vue/vue-debug-guides/reference/ts-defineprops-imported-types-limitations.md +281 -0
- package/skills/vue/vue-debug-guides/reference/ts-event-handler-explicit-typing.md +213 -0
- package/skills/vue/vue-debug-guides/reference/ts-reactive-no-generic-argument.md +196 -0
- package/skills/vue/vue-debug-guides/reference/ts-shallowref-for-dynamic-components.md +218 -0
- package/skills/vue/vue-debug-guides/reference/ts-template-ref-null-handling.md +249 -0
- package/skills/vue/vue-debug-guides/reference/ts-template-type-casting.md +214 -0
- package/skills/vue/vue-debug-guides/reference/ts-withdefaults-mutable-factory-function.md +171 -0
- package/skills/vue/vue-debug-guides/reference/undeclared-emits-double-firing.md +195 -0
- package/skills/vue/vue-debug-guides/reference/use-template-ref-vue35.md +158 -0
- package/skills/vue/vue-debug-guides/reference/v-else-must-follow-v-if.md +136 -0
- package/skills/vue/vue-debug-guides/reference/v-for-component-props.md +95 -0
- package/skills/vue/vue-debug-guides/reference/v-for-computed-reverse-sort.md +86 -0
- package/skills/vue/vue-debug-guides/reference/v-for-key-attribute.md +90 -0
- package/skills/vue/vue-debug-guides/reference/v-for-range-starts-at-one.md +66 -0
- package/skills/vue/vue-debug-guides/reference/v-if-null-check-order.md +171 -0
- package/skills/vue/vue-debug-guides/reference/v-model-ignores-html-attributes.md +83 -0
- package/skills/vue/vue-debug-guides/reference/v-model-ime-composition.md +83 -0
- package/skills/vue/vue-debug-guides/reference/v-model-number-modifier-behavior.md +124 -0
- package/skills/vue/vue-debug-guides/reference/v-show-template-limitation.md +124 -0
- package/skills/vue/vue-debug-guides/reference/watch-async-cleanup.md +180 -0
- package/skills/vue/vue-debug-guides/reference/watch-async-creation-memory-leak.md +176 -0
- package/skills/vue/vue-debug-guides/reference/watch-deep-same-object-reference.md +165 -0
- package/skills/vue/vue-debug-guides/reference/watch-flush-timing.md +189 -0
- package/skills/vue/vue-debug-guides/reference/watch-reactive-property-getter.md +108 -0
- package/skills/vue/vue-debug-guides/reference/watcheffect-async-dependency-tracking.md +173 -0
- package/skills/vue/vue-debug-guides/reference/watcheffect-flush-post-for-refs.md +176 -0
- package/skills/vue/vue-jsx-best-practices/SKILL.md +12 -0
- package/skills/vue/vue-jsx-best-practices/reference/render-function-jsx-vue-vs-react.md +141 -0
- package/skills/vue/vue-options-api-best-practices/SKILL.md +23 -0
- package/skills/vue/vue-options-api-best-practices/reference/no-arrow-functions-in-lifecycle-hooks.md +95 -0
- package/skills/vue/vue-options-api-best-practices/reference/no-arrow-functions-in-methods.md +68 -0
- package/skills/vue/vue-options-api-best-practices/reference/stateful-methods-lifecycle.md +61 -0
- package/skills/vue/vue-options-api-best-practices/reference/ts-options-api-arrow-functions-validators.md +141 -0
- package/skills/vue/vue-options-api-best-practices/reference/ts-options-api-computed-return-types.md +192 -0
- package/skills/vue/vue-options-api-best-practices/reference/ts-options-api-proptype-complex-types.md +212 -0
- package/skills/vue/vue-options-api-best-practices/reference/ts-options-api-provide-inject-limitations.md +135 -0
- package/skills/vue/vue-options-api-best-practices/reference/ts-options-api-type-event-handlers.md +202 -0
- package/skills/vue/vue-options-api-best-practices/reference/ts-options-api-use-definecomponent.md +172 -0
- package/skills/vue/vue-options-api-best-practices/reference/ts-strict-mode-options-api.md +197 -0
- package/skills/vue/vue-pinia-best-practices/SKILL.md +21 -0
- package/skills/vue/vue-pinia-best-practices/reference/pinia-no-active-pinia-error.md +248 -0
- package/skills/vue/vue-pinia-best-practices/reference/pinia-setup-store-return-all-state.md +227 -0
- package/skills/vue/vue-pinia-best-practices/reference/pinia-store-destructuring-breaks-reactivity.md +193 -0
- package/skills/vue/vue-pinia-best-practices/reference/state-url-for-ephemeral-filters.md +238 -0
- package/skills/vue/vue-pinia-best-practices/reference/state-use-pinia-for-large-apps.md +262 -0
- package/skills/vue/vue-pinia-best-practices/reference/store-method-binding-parentheses.md +191 -0
- package/skills/vue/vue-router-best-practices/SKILL.md +23 -0
- package/skills/vue/vue-router-best-practices/reference/router-beforeenter-no-param-trigger.md +167 -0
- package/skills/vue/vue-router-best-practices/reference/router-beforerouteenter-no-this.md +176 -0
- package/skills/vue/vue-router-best-practices/reference/router-guard-async-await-pattern.md +227 -0
- package/skills/vue/vue-router-best-practices/reference/router-navigation-guard-infinite-loop.md +187 -0
- package/skills/vue/vue-router-best-practices/reference/router-navigation-guard-next-deprecated.md +150 -0
- package/skills/vue/vue-router-best-practices/reference/router-param-change-no-lifecycle.md +181 -0
- package/skills/vue/vue-router-best-practices/reference/router-simple-routing-cleanup.md +209 -0
- package/skills/vue/vue-router-best-practices/reference/router-use-vue-router-for-production.md +183 -0
- package/skills/vue/vue-testing-best-practices/SKILL.md +29 -0
- package/skills/vue/vue-testing-best-practices/reference/async-component-testing.md +163 -0
- package/skills/vue/vue-testing-best-practices/reference/teleport-testing-complexity.md +158 -0
- package/skills/vue/vue-testing-best-practices/reference/testing-async-await-flushpromises.md +175 -0
- package/skills/vue/vue-testing-best-practices/reference/testing-browser-vs-node-runners.md +208 -0
- package/skills/vue/vue-testing-best-practices/reference/testing-component-blackbox-approach.md +144 -0
- package/skills/vue/vue-testing-best-practices/reference/testing-composables-helper-wrapper.md +238 -0
- package/skills/vue/vue-testing-best-practices/reference/testing-e2e-playwright-recommended.md +242 -0
- package/skills/vue/vue-testing-best-practices/reference/testing-no-snapshot-only.md +197 -0
- package/skills/vue/vue-testing-best-practices/reference/testing-pinia-store-setup.md +228 -0
- package/skills/vue/vue-testing-best-practices/reference/testing-suspense-async-components.md +229 -0
- package/skills/vue/vue-testing-best-practices/reference/testing-vitest-recommended-for-vue.md +204 -0
- package/skills/worker/README.md +10 -0
- package/skills/worker/caveman/README.md +48 -0
- package/skills/worker/caveman/SKILL.md +88 -0
- package/skills/worker/ponytail/SKILL.md +120 -0
- package/skills-lock.json +131 -0
- package/templates/state.md +16 -0
package/docs/README.md
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# Project Documentation
|
|
2
|
+
|
|
3
|
+
These documents are the source of truth for product and engineering information. The repository currently provides a foundation; no product application has been implemented. Technology preferences exist, but the application stack has not been selected.
|
|
4
|
+
|
|
5
|
+
## Sources of Truth
|
|
6
|
+
|
|
7
|
+
| Information | Document | Status |
|
|
8
|
+
| --- | --- | --- |
|
|
9
|
+
| Product problem, users, goals, scope, and outcomes | [PRD](product/PRD.md) | Draft; product decisions TBD |
|
|
10
|
+
| Software behavior and acceptance criteria | [SRS](requirements/SRS.md) | Draft; no accepted product requirements |
|
|
11
|
+
| System boundaries and responsibilities | [Architecture overview](architecture/overview.md) | Repository baseline recorded; product architecture TBD |
|
|
12
|
+
| Technology preferences | [JavaScript/TypeScript stack](javascript-typescript-stack.md) | Includes Rust/Tauri backends for large desktop applications; application stack undecided |
|
|
13
|
+
| Technical decision rationale | [ADR index](architecture/decisions/README.md) | No application ADRs yet |
|
|
14
|
+
| Code structure and engineering standards | [Conventions](engineering/conventions.md) | Baseline for initial implementation |
|
|
15
|
+
| Verification approach | [Testing strategy](engineering/testing-strategy.md) | Strategy available; product tooling and CI TBD |
|
|
16
|
+
| Coordination setup per repository/checkout | [Project orchestration](engineering/project-orchestration.md) | Local state per project, required to be ignored by Git |
|
|
17
|
+
|
|
18
|
+
Flow: PRD goals → SRS requirements → architecture boundaries and ADRs → implementation → tests → operations. Technology decisions belong in architecture and ADRs rather than product requirements.
|
|
19
|
+
|
|
20
|
+
## Documents Created When Needed
|
|
21
|
+
|
|
22
|
+
| Document | Create when | Implementation source to reference |
|
|
23
|
+
| --- | --- | --- |
|
|
24
|
+
| `requirements/glossary.md` | Domain terms require shared definitions | PRD and SRS |
|
|
25
|
+
| `architecture/api-contract.md` | An interface will be consumed by another component | Machine-readable specification or contract types/schemas; select during architecture design |
|
|
26
|
+
| `architecture/erd.md` | Persistent domain entities and relationships are defined | Migrations for exact schema details |
|
|
27
|
+
| `engineering/security.md` | Data boundaries, authentication, authorization, or sensitive integrations are defined | Security requirements in SRS; initial rules are in conventions |
|
|
28
|
+
| `operations/deployment.md` | Deployment targets and release procedures are selected | Actual build/IaC configuration and migration/rollback procedures |
|
|
29
|
+
| `operations/runbook.md` | Services are operated and diagnosis/recovery procedures exist | Available health checks, logs, metrics, and recovery procedures |
|
|
30
|
+
|
|
31
|
+
Do not infer endpoints, entities, staging/production environments, queues, or recovery procedures from documentation examples. Mark unknown information as **TBD** or **Open Question** in its owning document.
|
|
32
|
+
|
|
33
|
+
## IDs and Traceability
|
|
34
|
+
|
|
35
|
+
- Product goals: `PG-001`, `PG-002`, and so on, owned by the PRD.
|
|
36
|
+
- Requirements: `FR-<DOMAIN>-001` or `NFR-<AREA>-001`; use `SEC`, `PERF`, `REL`, and `OBS` for specific categories when useful.
|
|
37
|
+
- Decisions: `ADR-001`, `ADR-002`, and so on, following the [ADR rules](architecture/decisions/README.md).
|
|
38
|
+
- IDs remain stable when titles or details change. Retired IDs are not reused.
|
|
39
|
+
- Implementation tasks in `.orchestration/tasks/` reference requirement IDs, acceptance criteria, and relevant documents. Maintenance tasks such as documentation setup may state that product requirements do not yet apply.
|
|
40
|
+
- The SRS links requirements to PRD goals and implementation/test evidence when available. Avoid duplicating that matrix elsewhere.
|
|
41
|
+
|
|
42
|
+
## Loading Context for Humans and Agents
|
|
43
|
+
|
|
44
|
+
Use [AGENTS.md](../AGENTS.md) and roles in `.agents/` for agent working rules. Then select documentation according to the task:
|
|
45
|
+
|
|
46
|
+
| Work | Documentation context |
|
|
47
|
+
| --- | --- |
|
|
48
|
+
| Product/planning | PRD, SRS, glossary when available |
|
|
49
|
+
| Architecture | SRS, overview, relevant ADRs, stack preferences |
|
|
50
|
+
| Backend/data | Relevant requirements, API contract/ERD when available, ADRs, conventions, related source/migrations |
|
|
51
|
+
| Frontend | Relevant requirements, API contract and UI specification when available, conventions, related source |
|
|
52
|
+
| Testing/review | Task, requirement IDs, acceptance criteria, relevant constraints/ADRs, diff, verification results |
|
|
53
|
+
|
|
54
|
+
Progress, assignments, and run records belong only in `.orchestration/`. Documentation retains facts and decisions that remain useful after a task ends.
|
|
55
|
+
|
|
56
|
+
## Update Policy
|
|
57
|
+
|
|
58
|
+
Update each source of truth with its implementation change: behavior → SRS and tests; interfaces → contracts and tests; boundaries → overview and ADRs when trade-offs matter; data relationships → migrations and ERD; release/recovery → operations documentation.
|
|
59
|
+
|
|
60
|
+
When documents conflict, record the inconsistency, resolve it through the owning document, and correct affected documents. Do not silently select one account. Review changes for valid links and consistency with the implementation.
|
|
61
|
+
|
|
62
|
+
## Next Step
|
|
63
|
+
|
|
64
|
+
Answer the [PRD open questions](product/PRD.md#open-questions) about the user problem and MVP scope. Translate agreed goals into SRS requirements with acceptance criteria before selecting the application architecture.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Architecture Decision Records
|
|
2
|
+
|
|
3
|
+
ADRs explain technical choices with meaningful trade-offs, effects across several boundaries, costly reversals, or reasoning future developers need to understand. User preferences in the [stack guide](../../javascript-typescript-stack.md) remain decision inputs; no application stack choice has become an Accepted ADR.
|
|
4
|
+
|
|
5
|
+
## Register
|
|
6
|
+
|
|
7
|
+
No application ADRs exist yet. Examples are not treated as actual decisions.
|
|
8
|
+
|
|
9
|
+
## Recording Rules
|
|
10
|
+
|
|
11
|
+
- Use sequential filenames such as `ADR-001-title.md`; never reuse IDs.
|
|
12
|
+
- Status: Proposed, Accepted, Rejected, or Superseded.
|
|
13
|
+
- Include Context, Decision, Alternatives Considered, and Consequences. Link to the relevant requirements or boundaries.
|
|
14
|
+
- Explain why alternatives were rejected and the costs/risks of the choice, beyond naming a library.
|
|
15
|
+
- Replace an Accepted decision with a new ADR. Mark the original Superseded, link both records, and preserve the historical reasoning.
|
|
16
|
+
- Link each ADR from this register and from the overview when it changes system boundaries.
|
|
17
|
+
|
|
18
|
+
## Format
|
|
19
|
+
|
|
20
|
+
```md
|
|
21
|
+
# ADR-XXX — Decision Title
|
|
22
|
+
|
|
23
|
+
Status: Proposed
|
|
24
|
+
|
|
25
|
+
## Context
|
|
26
|
+
The problem, requirements, constraints, and conditions requiring a decision.
|
|
27
|
+
|
|
28
|
+
## Decision
|
|
29
|
+
The proposed or accepted choice and its scope.
|
|
30
|
+
|
|
31
|
+
## Alternatives Considered
|
|
32
|
+
Actual alternatives, their advantages and limitations, and the reasons for selection.
|
|
33
|
+
|
|
34
|
+
## Consequences
|
|
35
|
+
Benefits, costs, risks, and required changes.
|
|
36
|
+
```
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Architecture Overview
|
|
2
|
+
|
|
3
|
+
Status: Repository baseline — application architecture TBD. This document records existing boundaries and will describe product boundaries once the [SRS](../requirements/SRS.md) is agreed.
|
|
4
|
+
|
|
5
|
+
## System Context
|
|
6
|
+
|
|
7
|
+
Human developers and AI coding agents use this repository to prepare software work. No product client, API service, database, or application runtime workload has been implemented.
|
|
8
|
+
|
|
9
|
+
Workspace tooling is available as the npm package `@exelalfanso/puppets-orchestration`: its CLI creates a shared workspace and local state in a target repository. See the [workspace README](../../README.md) for usage.
|
|
10
|
+
|
|
11
|
+
## Major Components and Responsibilities
|
|
12
|
+
|
|
13
|
+
| Repository boundary | Responsibility |
|
|
14
|
+
| --- | --- |
|
|
15
|
+
| `AGENTS.md` and `.agents/*.md` | Shared rules and agent roles |
|
|
16
|
+
| `docs/` | Durable product intent, requirements, architecture, decisions, and engineering guidance |
|
|
17
|
+
| `.orchestration/` | Temporary tasks, dependencies, progress, and run records |
|
|
18
|
+
| `skills/` | Categorized skill references |
|
|
19
|
+
| `bin/` and `templates/` | Bootstrap CLI with no external runtime dependencies and fresh state templates for npm distribution |
|
|
20
|
+
|
|
21
|
+
Application boundaries, service ownership, and communication are TBD. Agent roles do not define the product architecture.
|
|
22
|
+
|
|
23
|
+
## Data Flow
|
|
24
|
+
|
|
25
|
+
Application data flow: TBD. The [documentation index](../README.md) describes the documentation and implementation flow.
|
|
26
|
+
|
|
27
|
+
## External Dependencies
|
|
28
|
+
|
|
29
|
+
Application dependencies have not been installed or selected. Use the [stack preferences](../javascript-typescript-stack.md) as input and record choices with meaningful trade-offs in [ADRs](decisions/README.md).
|
|
30
|
+
|
|
31
|
+
## Trust Boundaries
|
|
32
|
+
|
|
33
|
+
Client/server boundaries, identity, access permissions, data classification, and external integrations are TBD until product scope is defined. Initial engineering rules are in [conventions](../engineering/conventions.md).
|
|
34
|
+
|
|
35
|
+
## Deployment Model
|
|
36
|
+
|
|
37
|
+
TBD: hosting targets, application processes, and environments. No staging, production, or deployment pipeline is documented as available.
|
|
38
|
+
|
|
39
|
+
## Important Constraints
|
|
40
|
+
|
|
41
|
+
Keep the repository foundation small and file-based, following [AGENTS.md](../../AGENTS.md). Create the API contract and ERD when interfaces and persistent entities are defined, following the [documentation triggers](../README.md#documents-created-when-needed).
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Engineering Conventions
|
|
2
|
+
|
|
3
|
+
Status: Baseline for initial implementation. Application source structure, formatter, lint tooling, and script names have not been selected. This document governs project code; [AGENTS.md](../../AGENTS.md) governs agent working rules.
|
|
4
|
+
|
|
5
|
+
## Repository and Module Boundaries
|
|
6
|
+
|
|
7
|
+
Follow the [architecture boundaries](../architecture/overview.md) and [documentation ownership](../README.md). Select application source structure once boundaries are known; add layers or services only when needed.
|
|
8
|
+
|
|
9
|
+
Shared contract types and schemas must not import secrets, database connections, or server implementations into the frontend. Give application modules clear responsibilities and connect dependencies across boundaries through agreed contracts.
|
|
10
|
+
|
|
11
|
+
## Naming and Dependencies
|
|
12
|
+
|
|
13
|
+
Use consistent domain terminology; create a glossary when shared definitions are needed. Technology choices follow the [stack guide](../javascript-typescript-stack.md). Link to it rather than duplicating the stack list. Commit dependency lockfiles and document scripts once tooling is available.
|
|
14
|
+
|
|
15
|
+
## Validation and Error Handling
|
|
16
|
+
|
|
17
|
+
Validate external input at system boundaries. TypeScript types alone do not establish runtime validity. Keep shared schemas at contract boundaries and link their implementations from the API contract when available.
|
|
18
|
+
|
|
19
|
+
Distinguish expected input/domain errors from internal failures. Contracts define public error shapes; internal details and stack traces are not sent to users. Select effects/error patterns according to project needs and technical decisions.
|
|
20
|
+
|
|
21
|
+
## Initial Security and Logging Rules
|
|
22
|
+
|
|
23
|
+
- Keep secrets out of source, documentation, logs, and test artifacts. Document configuration names and provisioning methods when integrations exist.
|
|
24
|
+
- Do not log credentials, session tokens, or sensitive payloads. Select diagnostic metadata according to agreed data classification.
|
|
25
|
+
- Private-access features must enforce authorization at the server boundary for each resource. UI restrictions alone are insufficient.
|
|
26
|
+
- Authentication, access models, auditing, retention, and sensitive integrations are TBD. Move details to `security.md` when those boundaries are defined, keeping a single source of rules.
|
|
27
|
+
|
|
28
|
+
## Code Review
|
|
29
|
+
|
|
30
|
+
Behavior changes include requirement IDs and verification evidence following the [testing strategy](testing-strategy.md). Review covers contracts across boundaries, sensitive data, dependency changes, and updates to owning documents. Project-specific branch/release workflows are TBD; no CI or merge rules are claimed active.
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
# Orchestration per Repository/Project
|
|
2
|
+
|
|
3
|
+
The central workspace holds shared rules and agent roles. Each project repository keeps its own orchestration state at the active checkout root. The agent selects the target repository from the user's instructions and uses that directory for the project's tasks and runs.
|
|
4
|
+
|
|
5
|
+
## Minimal Structure
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
workspace/
|
|
9
|
+
├── AGENTS.md
|
|
10
|
+
├── .agents/ # Shared roles
|
|
11
|
+
├── skills/ # Shared skill references
|
|
12
|
+
└── repos/
|
|
13
|
+
└── project-a/ # Separate Git repository
|
|
14
|
+
├── AGENTS.md # Project rules, committed
|
|
15
|
+
├── .gitignore # Ignore rules, committed
|
|
16
|
+
├── docs/ # Project requirements/decisions, committed
|
|
17
|
+
└── .orchestration/ # Local coordination, ignored
|
|
18
|
+
├── state.md
|
|
19
|
+
├── tasks/
|
|
20
|
+
└── runs/
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Repositories may live outside `repos/`; always specify the target path. Shared roles and skills do not need to be copied into every project. When a repository is opened independently or outside the central workspace, the orchestrator explicitly loads shared rules/roles rather than assuming parent instructions are available.
|
|
24
|
+
|
|
25
|
+
| Content | Purpose |
|
|
26
|
+
| --- | --- |
|
|
27
|
+
| `state.md` | Target repository/checkout, branch, active goal, phase, tasks, and blockers |
|
|
28
|
+
| `tasks/<ID>.md` | Scope, dependencies, related requirements, acceptance criteria, and outcome report for one task |
|
|
29
|
+
| `runs/` | Command evidence, attempts, failures, and review results useful to the active run |
|
|
30
|
+
|
|
31
|
+
Follow the task protocol in [AGENTS.md](../../AGENTS.md). Task IDs are local to each repository/checkout. Include the repository name and task ID in communication across projects.
|
|
32
|
+
|
|
33
|
+
## Setting Up the Selected Repository
|
|
34
|
+
|
|
35
|
+
The npm CLI can perform the initial setup:
|
|
36
|
+
|
|
37
|
+
```sh
|
|
38
|
+
npx @exelalfanso/puppets-orchestration init-project <repo-path> --workspace <shared-workspace-path>
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
This registry command becomes available after publication; see the [workspace README](../../README.md) for local tarball usage. The command preserves existing state and adds project guidance and ignore rules. It rejects already-tracked orchestration state before modifying the repository.
|
|
42
|
+
|
|
43
|
+
For manual setup or ongoing work:
|
|
44
|
+
|
|
45
|
+
1. Confirm the absolute target path, Git root, branch, and checkout/worktree. Run implementation commands from that checkout.
|
|
46
|
+
2. Read its `AGENTS.md` and existing documentation, then load relevant shared roles.
|
|
47
|
+
3. Add `/.orchestration/` to the target's `.gitignore`, preserving existing rules.
|
|
48
|
+
4. Create `.orchestration/state.md`, `tasks/`, and `runs/` if missing. Preserve existing state and reconcile it against the branch, code, and current goal before continuing.
|
|
49
|
+
5. Record the target identity in state. Create local tasks before delegation and follow the shared dependency and acceptance protocol.
|
|
50
|
+
6. When switching projects, read the destination project's state. Keep each project's tasks and progress in its own checkout.
|
|
51
|
+
|
|
52
|
+
Each worktree has its own local `.orchestration/`. Keep state separate for parallel checkouts and verify older checkout state against the current branch.
|
|
53
|
+
|
|
54
|
+
Initial `state.md` example:
|
|
55
|
+
|
|
56
|
+
```md
|
|
57
|
+
# Project State
|
|
58
|
+
|
|
59
|
+
## Target
|
|
60
|
+
- Project: <repository name>
|
|
61
|
+
- Checkout: <absolute path>
|
|
62
|
+
- Branch: <current branch>
|
|
63
|
+
|
|
64
|
+
## Goal
|
|
65
|
+
TBD — set from the user's instructions.
|
|
66
|
+
|
|
67
|
+
## Phase
|
|
68
|
+
Ready for task planning.
|
|
69
|
+
|
|
70
|
+
## Active Tasks
|
|
71
|
+
None.
|
|
72
|
+
|
|
73
|
+
## Blockers
|
|
74
|
+
None identified; reassess when the goal is defined.
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Required Git Ignore Rule
|
|
78
|
+
|
|
79
|
+
Add this rule to `.gitignore` at each project repository root:
|
|
80
|
+
|
|
81
|
+
```gitignore
|
|
82
|
+
# Local agent coordination state
|
|
83
|
+
/.orchestration/
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
State, assignments, attempts, and run evidence change during agent work and belong to a local checkout. Ignoring the directory keeps temporary progress out of commits, diffs, and merge conflicts. Commit `.gitignore` so the rule applies to all clones. Bootstrap `.orchestration/` when work begins in a new clone or checkout.
|
|
87
|
+
|
|
88
|
+
Durable requirements, technical decisions, contracts, and operational guidance belong in the project's `docs/`. Stable project rules belong in `AGENTS.md`. Commit both. Record verification evidence needed by collaborators in a PR or CI; durable documentation must remain useful without ignored local files.
|
|
89
|
+
|
|
90
|
+
Verify from the target repository root:
|
|
91
|
+
|
|
92
|
+
```sh
|
|
93
|
+
git check-ignore -v -- .orchestration/state.md
|
|
94
|
+
git ls-files -- .orchestration
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
The first command must show the ignore rule; the second must return no files. `.gitignore` does not untrack existing files. If state is already tracked, report it. Migrate it out of the index as a separately agreed change, preserving local files and first moving durable decisions into `docs/`.
|
|
98
|
+
|
|
99
|
+
For projects under `repos/`, add `/repos/` to the central workspace's `.gitignore` so project repositories are excluded from its Git history. Each project still needs its own `/.orchestration/` rule. This bootstrap guide does not automatically change the tracked orchestration foundation in the source workspace.
|
|
100
|
+
|
|
101
|
+
## Ready-to-Use Agent Context
|
|
102
|
+
|
|
103
|
+
```text
|
|
104
|
+
Target project: <absolute repository/checkout path>
|
|
105
|
+
Shared orchestration workspace: <absolute shared workspace path>
|
|
106
|
+
|
|
107
|
+
Read the shared AGENTS.md and relevant role, then the target's AGENTS.md and docs.
|
|
108
|
+
Confirm the Git root, branch, and target checkout before changing files.
|
|
109
|
+
Bootstrap .orchestration/state.md, tasks/, and runs/ at the target root if missing.
|
|
110
|
+
Preserve existing content and reconcile state against the code and user goal.
|
|
111
|
+
Add /.orchestration/ to the target's .gitignore without replacing other rules.
|
|
112
|
+
Verify the ignore rule and confirm no .orchestration files are tracked.
|
|
113
|
+
Report tracked state; do not automatically remove files or index entries.
|
|
114
|
+
Use only the target's .orchestration for tasks, dependencies, progress, and run evidence.
|
|
115
|
+
Keep durable requirements, decisions, and conventions in the target's docs/ or AGENTS.md,
|
|
116
|
+
and commit them with related changes.
|
|
117
|
+
Keep target project implementation state separate from shared workspace coordination.
|
|
118
|
+
```
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Testing Strategy
|
|
2
|
+
|
|
3
|
+
Status: Initial product strategy; no application or CI checks exist. Workspace CLI tooling has tests using Node.js's built-in test runner. Product test tooling has not been selected.
|
|
4
|
+
|
|
5
|
+
## Workspace Tooling Verification
|
|
6
|
+
|
|
7
|
+
Run `npm test` from the source repository. CLI tests cover workspace bootstrap without Git history, preservation of existing files/progress on repeat setup, per-repository state isolation, ignore rules, and rejection of tracked coordination state. Tests use temporary directories rather than user project repositories.
|
|
8
|
+
|
|
9
|
+
Run `npm run pack:local` to build a tarball. Check the package allowlist and smoke-test `init`/`init-project` from the tarball before distributing a new version. See the [workspace README](../../README.md) for local commands.
|
|
10
|
+
|
|
11
|
+
## Testing Goals
|
|
12
|
+
|
|
13
|
+
Verify [SRS acceptance criteria](../requirements/SRS.md) deterministically and according to risk. Focus on observable behavior, error paths, and data/access boundaries. Avoid tests that merely repeat implementation details.
|
|
14
|
+
|
|
15
|
+
## Selecting Test Types
|
|
16
|
+
|
|
17
|
+
| Type | Use for |
|
|
18
|
+
| --- | --- |
|
|
19
|
+
| Unit | Pure domain logic and boundary cases that need no real services |
|
|
20
|
+
| Integration | Behavior between modules and database/auth interactions when those components exist |
|
|
21
|
+
| Contract | Schema, request/response, and error consistency across client/server boundaries; API typing does not replace runtime validation |
|
|
22
|
+
| End-to-end | Primary user flows and important failures agreed in the PRD/SRS |
|
|
23
|
+
| Performance | Measurable performance requirements; establish budgets and load profiles from actual needs |
|
|
24
|
+
|
|
25
|
+
Not every change needs every test type. Select verification that provides evidence for affected requirements.
|
|
26
|
+
|
|
27
|
+
## Traceability
|
|
28
|
+
|
|
29
|
+
The SRS stores requirement → task/code/test links when available. Test names or descriptions may include requirement IDs to make evidence easy to find. Update acceptance criteria and related tests with implementation when requirements change.
|
|
30
|
+
|
|
31
|
+
## Test Environment
|
|
32
|
+
|
|
33
|
+
Product test tooling and configuration are TBD after framework selection. Isolate test data, control time/randomness when relevant, and clean up state. Fixtures must not contain production data or secrets.
|
|
34
|
+
|
|
35
|
+
## Required CI Checks
|
|
36
|
+
|
|
37
|
+
No CI is configured. During initial application implementation, select available lint/format, typecheck, build, and test commands and record their passing criteria here. Mark checks required/active only once their workflows exist.
|
|
38
|
+
|
|
39
|
+
## Documentation Verification
|
|
40
|
+
|
|
41
|
+
For documentation changes, check local links, source-of-truth consistency, IDs, and accuracy against the repository. Documentation-only changes do not require runtime tests. Keep temporary evidence in `.orchestration/` rather than treating it as a permanent product fact.
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# JavaScript and TypeScript Stack
|
|
2
|
+
|
|
3
|
+
Status: user preferences for JavaScript/TypeScript projects, with Rust through Tauri as the backend for large desktop applications. This project's application stack has not been selected. Record final decisions with meaningful trade-offs in [ADRs](architecture/decisions/README.md). The [architecture overview](architecture/overview.md) owns application boundaries.
|
|
4
|
+
|
|
5
|
+
Choose frameworks according to project size and complexity. Not every project needs every component below.
|
|
6
|
+
|
|
7
|
+
## Rust Backend Through Tauri
|
|
8
|
+
|
|
9
|
+
For large desktop projects, use Tauri with Rust as the application backend. The frontend uses JavaScript/TypeScript with React or Vue. This covers backend logic and native capabilities through Tauri; frontend choices follow the desktop application's needs.
|
|
10
|
+
|
|
11
|
+
The frontend/Tauri backend communication contract is TBD during architecture design. ElysiaJS and Eden Treaty apply when a project has a TypeScript API server. Bun and pnpm serve the JavaScript/TypeScript parts; Rust/Tauri build configuration is selected during implementation.
|
|
12
|
+
|
|
13
|
+
## Core Tools
|
|
14
|
+
|
|
15
|
+
| Area | Choice | Notes |
|
|
16
|
+
| --- | --- | --- |
|
|
17
|
+
| Runtime | Bun | Runtime for server-side JavaScript and TypeScript. |
|
|
18
|
+
| Package manager | pnpm | Install and manage project dependencies with pnpm. |
|
|
19
|
+
| API server backend | ElysiaJS | Build TypeScript APIs, especially when running on Bun. |
|
|
20
|
+
| Large desktop backend | Rust + Tauri | Desktop application backend with a JavaScript/TypeScript frontend. |
|
|
21
|
+
| Frontend/backend API types | Eden Treaty | Share Elysia route types with the frontend for typed API calls. |
|
|
22
|
+
| Validation | Zod | Define schemas at input boundaries and share schemas or inferred types where needed. |
|
|
23
|
+
| Authentication | Better Auth | Preferred authentication library. |
|
|
24
|
+
| Infrastructure as code | Alchemy | Preferred IaC tool. |
|
|
25
|
+
| Effects | Effect TS | Use for typed effects and structured error handling when helpful; keep simple code direct. |
|
|
26
|
+
| Event/job delivery to workers | BullMQ | Queue events as jobs for background workers. |
|
|
27
|
+
| Queue storage | Redis | BullMQ dependency for queue and job state storage. |
|
|
28
|
+
|
|
29
|
+
## Events and Background Workers
|
|
30
|
+
|
|
31
|
+
Use BullMQ for asynchronous event/job delivery to workers when background processing is needed. A producer adds an event as a job to a BullMQ queue stored in Redis; a worker picks up and processes the job. This follows the [BullMQ queue model](https://docs.bullmq.io/guide/queues/).
|
|
32
|
+
|
|
33
|
+
Flow: producer → BullMQ/Redis queue → worker.
|
|
34
|
+
|
|
35
|
+
Payload schemas, queue names, retry/backoff, idempotency, concurrency, and failed-job handling are TBD according to product needs. If the producer runs in the Rust/Tauri backend, define its integration boundary with BullMQ during architecture design. Record event contracts in the API contract and integration decisions with meaningful trade-offs in ADRs.
|
|
36
|
+
|
|
37
|
+
## UI Libraries
|
|
38
|
+
|
|
39
|
+
- React: shadcn/ui.
|
|
40
|
+
- Vue: VUX.
|
|
41
|
+
|
|
42
|
+
Open Question: confirm the intended VUX package and version before implementing Vue. This preference is retained as requested by the user.
|
|
43
|
+
|
|
44
|
+
## Database Selection
|
|
45
|
+
|
|
46
|
+
- SQLite for small, uncomplicated projects with limited relational needs.
|
|
47
|
+
- PostgreSQL for complex projects, many related entities, or substantial relational queries.
|
|
48
|
+
|
|
49
|
+
## Frameworks by Project Size
|
|
50
|
+
|
|
51
|
+
| Project size | React | Vue | Build/framework direction |
|
|
52
|
+
| --- | --- | --- | --- |
|
|
53
|
+
| Small to medium | React + TanStack Router | Vue + Vue Router | Vite |
|
|
54
|
+
| Large web application | TanStack Start | Nuxt | Select the full-stack framework for the chosen UI ecosystem. |
|
|
55
|
+
| Large desktop application | React | Vue | JavaScript/TypeScript frontend + Rust backend through Tauri; build/router integration TBD. |
|
|
56
|
+
|
|
57
|
+
## Selection Guidance
|
|
58
|
+
|
|
59
|
+
Start with the smallest setup that meets product needs. For small or medium client-focused applications, use Vite and the router for the chosen framework. For large web applications that need server rendering and full-stack conventions, use TanStack Start for React or Nuxt for Vue.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Product Requirements Document
|
|
2
|
+
|
|
3
|
+
Status: Draft — product intent has not been defined. The repository name and agent roles do not establish product features. Use this document to agree on goals before implementation.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
TBD: product summary and the value it provides. The repository is being prepared for product work; see the [technical baseline](../architecture/overview.md).
|
|
8
|
+
|
|
9
|
+
## Problem Statement
|
|
10
|
+
|
|
11
|
+
TBD: the user problem, its impact, and how it is currently addressed.
|
|
12
|
+
|
|
13
|
+
## Target Users
|
|
14
|
+
|
|
15
|
+
TBD: primary users, their usage context, and decision makers.
|
|
16
|
+
|
|
17
|
+
## User Needs
|
|
18
|
+
|
|
19
|
+
TBD: needs supported by evidence or product owner approval.
|
|
20
|
+
|
|
21
|
+
## Product Goals
|
|
22
|
+
|
|
23
|
+
No product goals have been accepted. Assign agreed goals IDs such as `PG-001` according to the [ID rules](../README.md#ids-and-traceability).
|
|
24
|
+
|
|
25
|
+
## Non-Goals
|
|
26
|
+
|
|
27
|
+
TBD: scope boundaries explicitly agreed for the first release.
|
|
28
|
+
|
|
29
|
+
## Core Features
|
|
30
|
+
|
|
31
|
+
TBD: features needed to achieve the goals, their priorities, and related goal IDs.
|
|
32
|
+
|
|
33
|
+
## User Flows
|
|
34
|
+
|
|
35
|
+
TBD: primary flows, starting conditions, successful outcomes, and relevant failure outcomes.
|
|
36
|
+
|
|
37
|
+
## Success Criteria
|
|
38
|
+
|
|
39
|
+
TBD: measurable outcomes for each goal, including the measure, target, and evaluation method.
|
|
40
|
+
|
|
41
|
+
## Constraints
|
|
42
|
+
|
|
43
|
+
TBD: deadlines, budget, user needs, or business limits. Architecture and ADRs own technical choices.
|
|
44
|
+
|
|
45
|
+
## Assumptions
|
|
46
|
+
|
|
47
|
+
No product assumptions have been accepted. Record assumptions and how to validate them before using them to define scope.
|
|
48
|
+
|
|
49
|
+
## Open Questions
|
|
50
|
+
|
|
51
|
+
- What problem should be solved, and who are the primary users?
|
|
52
|
+
- Which primary flow must succeed in the MVP?
|
|
53
|
+
- What belongs in the first release, and which features are deferred?
|
|
54
|
+
- How will success be measured, and are there deadlines or budget limits?
|
|
55
|
+
|
|
56
|
+
Translate the answers into [SRS](../requirements/SRS.md) requirements. Keep endpoint and database schema decisions in their owning technical documents.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Software Requirements Specification
|
|
2
|
+
|
|
3
|
+
Status: Draft — no product requirements have been accepted. The SRS translates [PRD goals](../product/PRD.md) into verifiable software behavior.
|
|
4
|
+
|
|
5
|
+
## Functional Requirements
|
|
6
|
+
|
|
7
|
+
TBD: software behavior based on agreed product goals. Do not infer authentication, task execution, or other features from installed skills or agent roles.
|
|
8
|
+
|
|
9
|
+
## Non-Functional Requirements
|
|
10
|
+
|
|
11
|
+
TBD: measurable quality targets appropriate to product risk, including security, performance, reliability, and observability when relevant. Latency, capacity, availability, and retention targets have not been selected.
|
|
12
|
+
|
|
13
|
+
## Constraints
|
|
14
|
+
|
|
15
|
+
TBD: required operational or compatibility limits. [Stack preferences](../javascript-typescript-stack.md) inform technical decisions; they do not define software behavior requirements.
|
|
16
|
+
|
|
17
|
+
## Requirement Format and Traceability
|
|
18
|
+
|
|
19
|
+
Follow the [ID rules](../README.md#ids-and-traceability). Each requirement includes:
|
|
20
|
+
|
|
21
|
+
| Field | Content |
|
|
22
|
+
| --- | --- |
|
|
23
|
+
| ID and title | Stable ID and a short description of the behavior |
|
|
24
|
+
| Status | Draft, Accepted, or Retired |
|
|
25
|
+
| Basis | Link to a `PG-*` goal or an accepted constraint |
|
|
26
|
+
| Behavior | Required software behavior, including trigger conditions and outcomes |
|
|
27
|
+
| Acceptance criteria | Observable results for success, errors, and relevant boundaries |
|
|
28
|
+
| Verification | Test type and passing criteria; link to files/results when available |
|
|
29
|
+
| Implementation | Related tasks, code, and contracts when available; TBD until implemented |
|
|
30
|
+
|
|
31
|
+
Non-functional requirements must specify a measure, target, measurement conditions, and verification method. Define ambiguous domain terms in a glossary when needed.
|
|
32
|
+
|
|
33
|
+
## Open Questions
|
|
34
|
+
|
|
35
|
+
Behavior and priorities await answers to the [PRD questions](../product/PRD.md#open-questions). Quality targets and data/access boundaries follow the primary flow definition. See the [testing strategy](../engineering/testing-strategy.md) for verification guidance.
|
package/package.json
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@exelalfanso/puppets-orchestration",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "File-based orchestration workspace and per-repository agent coordination setup",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"license": "UNLICENSED",
|
|
7
|
+
"author": "ExelAlfanso",
|
|
8
|
+
"repository": { "type": "git", "url": "git+https://github.com/ExelAlfanso/puppets.git" },
|
|
9
|
+
"homepage": "https://github.com/ExelAlfanso/puppets#readme",
|
|
10
|
+
"bugs": { "url": "https://github.com/ExelAlfanso/puppets/issues" },
|
|
11
|
+
"publishConfig": { "access": "public", "registry": "https://registry.npmjs.org/" },
|
|
12
|
+
"engines": { "node": ">=20" },
|
|
13
|
+
"bin": { "puppets-orchestration": "bin/puppets.mjs" },
|
|
14
|
+
"files": ["bin/", "templates/", "AGENTS.md", ".agents/*.md", "docs/", "skills/", "skills-lock.json"],
|
|
15
|
+
"scripts": {
|
|
16
|
+
"test": "node --test tests/cli.test.mjs",
|
|
17
|
+
"prepack": "node -e \"require('node:fs').mkdirSync('dist', {recursive:true})\"",
|
|
18
|
+
"pack:local": "npm pack --pack-destination dist"
|
|
19
|
+
}
|
|
20
|
+
}
|
package/skills/README.md
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# Skill Catalog
|
|
2
|
+
|
|
3
|
+
Skills are grouped by topic for browsing. The installed copies in `.agents/skills/` are the active project skills; `npx skills` manages those. Most categorized folders mirror them for an easy overview. `worker/` is an exception: its snapshots are loaded explicitly by implementation workers and are not mirrored into `.agents/skills/`.
|
|
4
|
+
|
|
5
|
+
- `vue/`: Vue and Vue ecosystem
|
|
6
|
+
- `react/`: React and composition patterns
|
|
7
|
+
- `fe/`: General frontend design and interface guidelines
|
|
8
|
+
- `be/`: Backend architecture, feature delivery, Node.js patterns, and security
|
|
9
|
+
- `qa/`: QA skills for reviewing tests, coverage, risks, and release evidence; role guidance is in `.agents/reviewer.md`
|
|
10
|
+
- `worker/`: Ponytail and Caveman for implementation workers only; see [worker policy](../.agents/worker-skills.md)
|
|
11
|
+
|
|
12
|
+
Sources include `vuejs-ai/skills`, `vercel-labs/agent-skills`, `anthropics/skills`, `agent-skills-hub/agent-skills-hub`, and `petrkindlmann/qa-skills`.
|