opencode-agent-kit 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +796 -0
- package/bin/commands/init.mjs +221 -0
- package/bin/init.mjs +21 -0
- package/package.json +22 -0
- package/template/.opencode/agent-docs/backend/README.md +0 -0
- package/template/.opencode/agent-docs/backend/node/BACKEND_PATTERNS.md +82 -0
- package/template/.opencode/agent-docs/backend/node/BACKEND_QUICK_START.md +49 -0
- package/template/.opencode/agent-docs/frontend/next/README.md +0 -0
- package/template/.opencode/agent-docs/frontend/nuxt/API_PATTERNS.md +807 -0
- package/template/.opencode/agent-docs/frontend/nuxt/CHEATSHEET.md +676 -0
- package/template/.opencode/agent-docs/frontend/nuxt/COMPLETION_REPORT.md +613 -0
- package/template/.opencode/agent-docs/frontend/nuxt/EXAMPLES.md +956 -0
- package/template/.opencode/agent-docs/frontend/nuxt/INDEX.md +596 -0
- package/template/.opencode/agent-docs/frontend/nuxt/MCP_GUIDE.md +881 -0
- package/template/.opencode/agent-docs/frontend/nuxt/MENTOR_CURRICULUM_30_DAYS.md +256 -0
- package/template/.opencode/agent-docs/frontend/nuxt/MENTOR_CURRICULUM_CHECKLIST.md +156 -0
- package/template/.opencode/agent-docs/frontend/nuxt/MENTOR_WEEKLY_ASSIGNMENTS.md +191 -0
- package/template/.opencode/agent-docs/frontend/nuxt/QUICK_START.md +509 -0
- package/template/.opencode/agent-docs/frontend/nuxt/README.md +506 -0
- package/template/.opencode/agent-docs/frontend/nuxt/README_AGENTS.md +140 -0
- package/template/.opencode/agent-docs/frontend/nuxt/README_DOCS.md +65 -0
- package/template/.opencode/agent-docs/frontend/nuxt/SUMMARY.md +474 -0
- package/template/.opencode/agent-docs/frontend/nuxt/TEAM_OPERATING_GUIDE.md +54 -0
- package/template/.opencode/agent-docs/frontend/nuxt/TESTING_GUIDE.md +904 -0
- package/template/.opencode/agent-docs/frontend/nuxt/WORKFLOWS.md +758 -0
- package/template/.opencode/agent-docs/frontend/react/API_PATTERNS.md +187 -0
- package/template/.opencode/agent-docs/frontend/react/CHEATSHEET.md +87 -0
- package/template/.opencode/agent-docs/frontend/react/INDEX.md +45 -0
- package/template/.opencode/agent-docs/frontend/react/QUICK_START.md +43 -0
- package/template/.opencode/agent-docs/frontend/react/README.md +159 -0
- package/template/.opencode/agent-docs/frontend/vue/README.md +0 -0
- package/template/.opencode/agent-docs/mobile/android/README.md +45 -0
- package/template/.opencode/agent-docs/mobile/flutter/README.md +44 -0
- package/template/.opencode/agents/android-developer.md +418 -0
- package/template/.opencode/agents/code-igniter-3-fullstack.md +345 -0
- package/template/.opencode/agents/code-reviewer.md +517 -0
- package/template/.opencode/agents/database-specialist.md +455 -0
- package/template/.opencode/agents/devops-specialist.md +562 -0
- package/template/.opencode/agents/flutter-developer.md +556 -0
- package/template/.opencode/agents/it-leader.md +911 -0
- package/template/.opencode/agents/laravel-advanced.md +691 -0
- package/template/.opencode/agents/node-backend-developer.md +343 -0
- package/template/.opencode/agents/nuxt-frontend-developer-mentor.md +402 -0
- package/template/.opencode/agents/nuxt-frontend-developer.md +1573 -0
- package/template/.opencode/agents/react-frontend-developer.md +1017 -0
- package/template/.opencode/agents/seo-specialist.md +681 -0
- package/template/.opencode/agents/ui-ux-designer.md +783 -0
- package/template/.opencode/commands/android-build/command.md +25 -0
- package/template/.opencode/commands/android-test/command.md +23 -0
- package/template/.opencode/commands/build-fix.md +29 -0
- package/template/.opencode/commands/checkpoint.md +74 -0
- package/template/.opencode/commands/code-review.md +40 -0
- package/template/.opencode/commands/e2e.md +363 -0
- package/template/.opencode/commands/eval.md +120 -0
- package/template/.opencode/commands/evolve.md +193 -0
- package/template/.opencode/commands/flutter-build/command.md +25 -0
- package/template/.opencode/commands/flutter-test/command.md +24 -0
- package/template/.opencode/commands/go-build.md +183 -0
- package/template/.opencode/commands/go-review.md +148 -0
- package/template/.opencode/commands/go-test.md +268 -0
- package/template/.opencode/commands/gpc-release/command.md +30 -0
- package/template/.opencode/commands/instinct-export.md +91 -0
- package/template/.opencode/commands/instinct-import.md +142 -0
- package/template/.opencode/commands/instinct-status.md +86 -0
- package/template/.opencode/commands/learn.md +70 -0
- package/template/.opencode/commands/multi-backend.md +158 -0
- package/template/.opencode/commands/multi-execute.md +310 -0
- package/template/.opencode/commands/multi-frontend.md +158 -0
- package/template/.opencode/commands/multi-plan.md +261 -0
- package/template/.opencode/commands/multi-workflow.md +183 -0
- package/template/.opencode/commands/orchestrate.md +172 -0
- package/template/.opencode/commands/plan.md +113 -0
- package/template/.opencode/commands/pm2.md +271 -0
- package/template/.opencode/commands/python-review.md +297 -0
- package/template/.opencode/commands/refactor-clean.md +28 -0
- package/template/.opencode/commands/sessions.md +305 -0
- package/template/.opencode/commands/setup-pm.md +80 -0
- package/template/.opencode/commands/skill-create.md +174 -0
- package/template/.opencode/commands/tdd.md +326 -0
- package/template/.opencode/commands/test-coverage.md +27 -0
- package/template/.opencode/commands/update-codemaps.md +17 -0
- package/template/.opencode/commands/update-docs.md +31 -0
- package/template/.opencode/commands/verify.md +59 -0
- package/template/.opencode/config.example.json +309 -0
- package/template/.opencode/config.json +341 -0
- package/template/.opencode/contexts/dev.md +20 -0
- package/template/.opencode/contexts/research.md +26 -0
- package/template/.opencode/contexts/review.md +22 -0
- package/template/.opencode/hooks/hooks.json +169 -0
- package/template/.opencode/instructions/INSTRUCTIONS.md +388 -0
- package/template/.opencode/package.json +5 -0
- package/template/.opencode/rules/README.md +82 -0
- package/template/.opencode/rules/android/gradle.md +62 -0
- package/template/.opencode/rules/android/testing.md +27 -0
- package/template/.opencode/rules/common/agents.md +49 -0
- package/template/.opencode/rules/common/coding-style.md +48 -0
- package/template/.opencode/rules/common/git-workflow.md +45 -0
- package/template/.opencode/rules/common/hooks.md +30 -0
- package/template/.opencode/rules/common/patterns.md +31 -0
- package/template/.opencode/rules/common/performance.md +55 -0
- package/template/.opencode/rules/common/security.md +29 -0
- package/template/.opencode/rules/common/testing.md +29 -0
- package/template/.opencode/rules/flutter/state-management.md +57 -0
- package/template/.opencode/rules/flutter/testing.md +42 -0
- package/template/.opencode/rules/golang/coding-style.md +26 -0
- package/template/.opencode/rules/golang/hooks.md +11 -0
- package/template/.opencode/rules/golang/patterns.md +39 -0
- package/template/.opencode/rules/golang/security.md +28 -0
- package/template/.opencode/rules/golang/testing.md +25 -0
- package/template/.opencode/rules/mobile/performance.md +36 -0
- package/template/.opencode/rules/python/coding-style.md +37 -0
- package/template/.opencode/rules/python/hooks.md +14 -0
- package/template/.opencode/rules/python/patterns.md +34 -0
- package/template/.opencode/rules/python/security.md +25 -0
- package/template/.opencode/rules/python/testing.md +33 -0
- package/template/.opencode/rules/typescript/coding-style.md +58 -0
- package/template/.opencode/rules/typescript/hooks.md +15 -0
- package/template/.opencode/rules/typescript/patterns.md +45 -0
- package/template/.opencode/rules/typescript/security.md +21 -0
- package/template/.opencode/rules/typescript/testing.md +11 -0
- package/template/.opencode/skills/api-documentation/SKILL.md +188 -0
- package/template/.opencode/skills/backend-patterns/SKILL.md +587 -0
- package/template/.opencode/skills/building-components/SKILL.md +37 -0
- package/template/.opencode/skills/building-components/references/accessibility.mdx +819 -0
- package/template/.opencode/skills/building-components/references/as-child.mdx +324 -0
- package/template/.opencode/skills/building-components/references/composition.mdx +239 -0
- package/template/.opencode/skills/building-components/references/data-attributes.mdx +413 -0
- package/template/.opencode/skills/building-components/references/definitions.mdx +258 -0
- package/template/.opencode/skills/building-components/references/design-tokens.mdx +57 -0
- package/template/.opencode/skills/building-components/references/docs.mdx +155 -0
- package/template/.opencode/skills/building-components/references/marketplaces.mdx +144 -0
- package/template/.opencode/skills/building-components/references/npm.mdx +166 -0
- package/template/.opencode/skills/building-components/references/polymorphism.mdx +583 -0
- package/template/.opencode/skills/building-components/references/principles.mdx +61 -0
- package/template/.opencode/skills/building-components/references/registry.mdx +169 -0
- package/template/.opencode/skills/building-components/references/state.mdx +99 -0
- package/template/.opencode/skills/building-components/references/styling.mdx +286 -0
- package/template/.opencode/skills/building-components/references/types.mdx +191 -0
- package/template/.opencode/skills/clickhouse-io/SKILL.md +429 -0
- package/template/.opencode/skills/coding-standards/SKILL.md +520 -0
- package/template/.opencode/skills/configure-ecc/SKILL.md +298 -0
- package/template/.opencode/skills/continuous-learning/SKILL.md +110 -0
- package/template/.opencode/skills/continuous-learning/config.json +18 -0
- package/template/.opencode/skills/continuous-learning/evaluate-session.sh +60 -0
- package/template/.opencode/skills/continuous-learning-v2/SKILL.md +284 -0
- package/template/.opencode/skills/continuous-learning-v2/agents/observer.md +137 -0
- package/template/.opencode/skills/continuous-learning-v2/agents/start-observer.sh +134 -0
- package/template/.opencode/skills/continuous-learning-v2/config.json +41 -0
- package/template/.opencode/skills/continuous-learning-v2/hooks/observe.sh +153 -0
- package/template/.opencode/skills/continuous-learning-v2/scripts/instinct-cli.py +489 -0
- package/template/.opencode/skills/continuous-learning-v2/scripts/test_parse_instinct.py +82 -0
- package/template/.opencode/skills/dart-add-unit-test/SKILL.md +122 -0
- package/template/.opencode/skills/dart-build-cli-app/SKILL.md +185 -0
- package/template/.opencode/skills/dart-collect-coverage/SKILL.md +141 -0
- package/template/.opencode/skills/dart-fix-runtime-errors/SKILL.md +166 -0
- package/template/.opencode/skills/dart-generate-test-mocks/SKILL.md +155 -0
- package/template/.opencode/skills/dart-migrate-to-checks-package/SKILL.md +126 -0
- package/template/.opencode/skills/dart-resolve-package-conflicts/SKILL.md +116 -0
- package/template/.opencode/skills/dart-run-static-analysis/SKILL.md +104 -0
- package/template/.opencode/skills/dart-use-pattern-matching/SKILL.md +146 -0
- package/template/.opencode/skills/django-patterns/SKILL.md +733 -0
- package/template/.opencode/skills/django-security/SKILL.md +592 -0
- package/template/.opencode/skills/django-tdd/SKILL.md +728 -0
- package/template/.opencode/skills/django-verification/SKILL.md +460 -0
- package/template/.opencode/skills/eval-harness/SKILL.md +227 -0
- package/template/.opencode/skills/firebase-basics/SKILL.md +103 -0
- package/template/.opencode/skills/firebase-basics/references/additional-skills.md +113 -0
- package/template/.opencode/skills/firebase-basics/references/cli-usage.md +31 -0
- package/template/.opencode/skills/firebase-basics/references/client-library-usage.md +45 -0
- package/template/.opencode/skills/firebase-basics/references/core-concepts.md +61 -0
- package/template/.opencode/skills/firebase-basics/references/iac-usage.md +40 -0
- package/template/.opencode/skills/firebase-basics/references/iam-security.md +74 -0
- package/template/.opencode/skills/firebase-basics/references/mcp-usage.md +63 -0
- package/template/.opencode/skills/flutter/SKILL.md +292 -0
- package/template/.opencode/skills/flutter-add-integration-test/SKILL.md +163 -0
- package/template/.opencode/skills/flutter-add-widget-preview/SKILL.md +145 -0
- package/template/.opencode/skills/flutter-add-widget-test/SKILL.md +154 -0
- package/template/.opencode/skills/flutter-apply-architecture-best-practices/SKILL.md +162 -0
- package/template/.opencode/skills/flutter-build-responsive-layout/SKILL.md +139 -0
- package/template/.opencode/skills/flutter-fix-layout-issues/SKILL.md +130 -0
- package/template/.opencode/skills/flutter-implement-json-serialization/SKILL.md +153 -0
- package/template/.opencode/skills/flutter-setup-declarative-routing/SKILL.md +255 -0
- package/template/.opencode/skills/flutter-setup-localization/SKILL.md +210 -0
- package/template/.opencode/skills/flutter-use-http-package/SKILL.md +174 -0
- package/template/.opencode/skills/frontend-design/SKILL.md +89 -0
- package/template/.opencode/skills/frontend-patterns/SKILL.md +631 -0
- package/template/.opencode/skills/golang-patterns/SKILL.md +673 -0
- package/template/.opencode/skills/golang-testing/SKILL.md +719 -0
- package/template/.opencode/skills/impeccable/SKILL.md +165 -0
- package/template/.opencode/skills/impeccable/agents/impeccable-asset-producer.md +101 -0
- package/template/.opencode/skills/impeccable/reference/adapt.md +190 -0
- package/template/.opencode/skills/impeccable/reference/animate.md +175 -0
- package/template/.opencode/skills/impeccable/reference/audit.md +133 -0
- package/template/.opencode/skills/impeccable/reference/bolder.md +113 -0
- package/template/.opencode/skills/impeccable/reference/brand.md +118 -0
- package/template/.opencode/skills/impeccable/reference/clarify.md +174 -0
- package/template/.opencode/skills/impeccable/reference/codex.md +105 -0
- package/template/.opencode/skills/impeccable/reference/cognitive-load.md +106 -0
- package/template/.opencode/skills/impeccable/reference/color-and-contrast.md +105 -0
- package/template/.opencode/skills/impeccable/reference/colorize.md +154 -0
- package/template/.opencode/skills/impeccable/reference/craft.md +123 -0
- package/template/.opencode/skills/impeccable/reference/critique.md +273 -0
- package/template/.opencode/skills/impeccable/reference/delight.md +302 -0
- package/template/.opencode/skills/impeccable/reference/distill.md +111 -0
- package/template/.opencode/skills/impeccable/reference/document.md +427 -0
- package/template/.opencode/skills/impeccable/reference/extract.md +69 -0
- package/template/.opencode/skills/impeccable/reference/harden.md +347 -0
- package/template/.opencode/skills/impeccable/reference/heuristics-scoring.md +234 -0
- package/template/.opencode/skills/impeccable/reference/interaction-design.md +195 -0
- package/template/.opencode/skills/impeccable/reference/layout.md +141 -0
- package/template/.opencode/skills/impeccable/reference/live.md +622 -0
- package/template/.opencode/skills/impeccable/reference/motion-design.md +109 -0
- package/template/.opencode/skills/impeccable/reference/onboard.md +234 -0
- package/template/.opencode/skills/impeccable/reference/optimize.md +258 -0
- package/template/.opencode/skills/impeccable/reference/overdrive.md +130 -0
- package/template/.opencode/skills/impeccable/reference/personas.md +179 -0
- package/template/.opencode/skills/impeccable/reference/polish.md +242 -0
- package/template/.opencode/skills/impeccable/reference/product.md +62 -0
- package/template/.opencode/skills/impeccable/reference/quieter.md +99 -0
- package/template/.opencode/skills/impeccable/reference/responsive-design.md +114 -0
- package/template/.opencode/skills/impeccable/reference/shape.md +165 -0
- package/template/.opencode/skills/impeccable/reference/spatial-design.md +100 -0
- package/template/.opencode/skills/impeccable/reference/teach.md +156 -0
- package/template/.opencode/skills/impeccable/reference/typeset.md +124 -0
- package/template/.opencode/skills/impeccable/reference/typography.md +159 -0
- package/template/.opencode/skills/impeccable/reference/ux-writing.md +107 -0
- package/template/.opencode/skills/impeccable/scripts/cleanup-deprecated.mjs +284 -0
- package/template/.opencode/skills/impeccable/scripts/command-metadata.json +94 -0
- package/template/.opencode/skills/impeccable/scripts/critique-storage.mjs +242 -0
- package/template/.opencode/skills/impeccable/scripts/design-parser.mjs +820 -0
- package/template/.opencode/skills/impeccable/scripts/detect-csp.mjs +198 -0
- package/template/.opencode/skills/impeccable/scripts/detect.mjs +21 -0
- package/template/.opencode/skills/impeccable/scripts/impeccable-paths.mjs +110 -0
- package/template/.opencode/skills/impeccable/scripts/is-generated.mjs +69 -0
- package/template/.opencode/skills/impeccable/scripts/live-accept.mjs +595 -0
- package/template/.opencode/skills/impeccable/scripts/live-browser-session.js +123 -0
- package/template/.opencode/skills/impeccable/scripts/live-browser.js +4860 -0
- package/template/.opencode/skills/impeccable/scripts/live-complete.mjs +75 -0
- package/template/.opencode/skills/impeccable/scripts/live-completion.mjs +18 -0
- package/template/.opencode/skills/impeccable/scripts/live-inject.mjs +446 -0
- package/template/.opencode/skills/impeccable/scripts/live-poll.mjs +200 -0
- package/template/.opencode/skills/impeccable/scripts/live-resume.mjs +48 -0
- package/template/.opencode/skills/impeccable/scripts/live-server.mjs +838 -0
- package/template/.opencode/skills/impeccable/scripts/live-session-store.mjs +254 -0
- package/template/.opencode/skills/impeccable/scripts/live-status.mjs +47 -0
- package/template/.opencode/skills/impeccable/scripts/live-wrap.mjs +632 -0
- package/template/.opencode/skills/impeccable/scripts/live.mjs +247 -0
- package/template/.opencode/skills/impeccable/scripts/load-context.mjs +141 -0
- package/template/.opencode/skills/impeccable/scripts/modern-screenshot.umd.js +14 -0
- package/template/.opencode/skills/impeccable/scripts/pin.mjs +214 -0
- package/template/.opencode/skills/iterative-retrieval/SKILL.md +202 -0
- package/template/.opencode/skills/java-coding-standards/SKILL.md +138 -0
- package/template/.opencode/skills/jetpack-compose/.skillfish.json +10 -0
- package/template/.opencode/skills/jetpack-compose/SKILL.md +420 -0
- package/template/.opencode/skills/jpa-patterns/SKILL.md +141 -0
- package/template/.opencode/skills/nutrient-document-processing/SKILL.md +165 -0
- package/template/.opencode/skills/nuxt-ui/SKILL.md +334 -0
- package/template/.opencode/skills/nuxt-ui/references/components.md +377 -0
- package/template/.opencode/skills/nuxt-ui/references/composables.md +127 -0
- package/template/.opencode/skills/nuxt-ui/references/layouts/chat.md +266 -0
- package/template/.opencode/skills/nuxt-ui/references/layouts/dashboard.md +220 -0
- package/template/.opencode/skills/nuxt-ui/references/layouts/docs.md +141 -0
- package/template/.opencode/skills/nuxt-ui/references/layouts/editor.md +168 -0
- package/template/.opencode/skills/nuxt-ui/references/layouts/page.md +260 -0
- package/template/.opencode/skills/nuxt-ui/references/theming.md +427 -0
- package/template/.opencode/skills/postgres-patterns/SKILL.md +146 -0
- package/template/.opencode/skills/project-guidelines-example/SKILL.md +345 -0
- package/template/.opencode/skills/python-patterns/SKILL.md +749 -0
- package/template/.opencode/skills/python-testing/SKILL.md +815 -0
- package/template/.opencode/skills/security-review/SKILL.md +494 -0
- package/template/.opencode/skills/security-review/cloud-infrastructure-security.md +361 -0
- package/template/.opencode/skills/shadcn-ui/README.md +248 -0
- package/template/.opencode/skills/shadcn-ui/SKILL.md +326 -0
- package/template/.opencode/skills/shadcn-ui/examples/auth-layout.tsx +177 -0
- package/template/.opencode/skills/shadcn-ui/examples/data-table.tsx +313 -0
- package/template/.opencode/skills/shadcn-ui/examples/form-pattern.tsx +177 -0
- package/template/.opencode/skills/shadcn-ui/resources/component-catalog.md +481 -0
- package/template/.opencode/skills/shadcn-ui/resources/customization-guide.md +516 -0
- package/template/.opencode/skills/shadcn-ui/resources/migration-guide.md +463 -0
- package/template/.opencode/skills/shadcn-ui/resources/setup-guide.md +412 -0
- package/template/.opencode/skills/shadcn-ui/scripts/verify-setup.sh +134 -0
- package/template/.opencode/skills/springboot-patterns/SKILL.md +304 -0
- package/template/.opencode/skills/springboot-security/SKILL.md +119 -0
- package/template/.opencode/skills/springboot-tdd/SKILL.md +157 -0
- package/template/.opencode/skills/springboot-verification/SKILL.md +100 -0
- package/template/.opencode/skills/strategic-compact/SKILL.md +63 -0
- package/template/.opencode/skills/strategic-compact/suggest-compact.sh +52 -0
- package/template/.opencode/skills/tdd-workflow/SKILL.md +409 -0
- package/template/.opencode/skills/vercel-composition-patterns/AGENTS.md +946 -0
- package/template/.opencode/skills/vercel-composition-patterns/SKILL.md +89 -0
- package/template/.opencode/skills/vercel-composition-patterns/rules/architecture-avoid-boolean-props.md +100 -0
- package/template/.opencode/skills/vercel-composition-patterns/rules/architecture-compound-components.md +112 -0
- package/template/.opencode/skills/vercel-composition-patterns/rules/patterns-children-over-render-props.md +87 -0
- package/template/.opencode/skills/vercel-composition-patterns/rules/patterns-explicit-variants.md +100 -0
- package/template/.opencode/skills/vercel-composition-patterns/rules/react19-no-forwardref.md +42 -0
- package/template/.opencode/skills/vercel-composition-patterns/rules/state-context-interface.md +191 -0
- package/template/.opencode/skills/vercel-composition-patterns/rules/state-decouple-implementation.md +113 -0
- package/template/.opencode/skills/vercel-composition-patterns/rules/state-lift-state.md +125 -0
- package/template/.opencode/skills/vercel-react-best-practices/AGENTS.md +2934 -0
- package/template/.opencode/skills/vercel-react-best-practices/SKILL.md +136 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/template/.opencode/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
- package/template/.opencode/skills/verification-loop/SKILL.md +120 -0
- package/template/.opencode/skills/web-design-guidelines/SKILL.md +39 -0
- package/template/AGENTS.md +32 -0
- package/template/opencode.json +354 -0
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
# Kurikulum Mentor 30 Hari (Jalur Ekosistem Nuxt)
|
|
2
|
+
|
|
3
|
+
Roadmap 1 bulan ini dirancang untuk developer yang **sudah bisa coding web dasar**, lalu ingin menguatkan fundamental yang relevan langsung ke stack:
|
|
4
|
+
|
|
5
|
+
- **Node.js**
|
|
6
|
+
- **Vue.js 3**
|
|
7
|
+
- **Nuxt.js 4**
|
|
8
|
+
- **Nuxt UI**
|
|
9
|
+
- **Tailwind CSS**
|
|
10
|
+
|
|
11
|
+
Program ini juga dioptimalkan untuk:
|
|
12
|
+
|
|
13
|
+
- **UI/UX Designer yang terbiasa dengan Figma** dan ingin transisi ke implementasi
|
|
14
|
+
- **Karyawan/profesional teknis** yang membutuhkan struktur belajar mingguan dengan evaluasi progres
|
|
15
|
+
- Sebagian kecil peserta bisa berasal dari mahasiswa/alumni IT
|
|
16
|
+
|
|
17
|
+
## Format Program
|
|
18
|
+
|
|
19
|
+
- Durasi: **4 minggu**
|
|
20
|
+
- Hari aktif: **5 hari kerja per minggu (Senin-Jumat)**
|
|
21
|
+
- Total sesi: **20 hari**
|
|
22
|
+
- Waktu harian: **90-150 menit**
|
|
23
|
+
- Komposisi: **25% konsep + 75% praktik**
|
|
24
|
+
|
|
25
|
+
## Jalur Belajar
|
|
26
|
+
|
|
27
|
+
Gunakan jalur sesuai latar belakang peserta:
|
|
28
|
+
|
|
29
|
+
1. **Jalur Desainer (Figma -> Code)**
|
|
30
|
+
- fokus translasi design system ke Nuxt UI + Tailwind
|
|
31
|
+
- fokus QA visual, konsistensi state, dan kualitas handoff
|
|
32
|
+
|
|
33
|
+
2. **Jalur Profesional (Karyawan Umum)**
|
|
34
|
+
- fokus fondasi arsitektur, debugging mindset, dan disiplin delivery
|
|
35
|
+
- fokus tugas mingguan, komunikasi teknis, dan penilaian rubrik
|
|
36
|
+
|
|
37
|
+
## Target Hasil
|
|
38
|
+
|
|
39
|
+
Setelah 30 hari, peserta mampu:
|
|
40
|
+
|
|
41
|
+
1. Memahami konteks runtime Node.js untuk pengembangan Nuxt
|
|
42
|
+
2. Membangun fitur Nuxt berbasis Vue Composition API
|
|
43
|
+
3. Menggunakan Nuxt UI secara konsisten untuk sistem antarmuka
|
|
44
|
+
4. Styling cepat dan maintainable dengan Tailwind CSS
|
|
45
|
+
5. Mengimplementasikan alur produksi dasar: data fetching, validation, error handling, testing mindset
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Minggu 1 - Node.js + Fundamental Runtime Nuxt
|
|
50
|
+
|
|
51
|
+
**Tujuan minggu:** memahami fondasi runtime agar implementasi Nuxt tidak sekadar "jalan", tetapi tepat dalam konteks server/client.
|
|
52
|
+
|
|
53
|
+
### Hari 1 (Senin): Runtime Node.js untuk Frontend Engineer
|
|
54
|
+
- Materi: event loop mental model, process lifecycle, env vars, npm scripts
|
|
55
|
+
- Praktik: bedah `package.json` scripts (`dev`, `build`, `preview`)
|
|
56
|
+
- Output: catatan alur eksekusi project dari `npm run dev` sampai app running
|
|
57
|
+
|
|
58
|
+
**Fokus jalur desainer:** pahami kenapa preview di dev environment bisa berbeda dari static mock Figma.
|
|
59
|
+
**Fokus jalur profesional:** pahami lifecycle command dan dependency graph sederhana untuk kebutuhan delivery tim.
|
|
60
|
+
|
|
61
|
+
### Hari 2 (Selasa): Konteks Eksekusi Nuxt (Server vs Client)
|
|
62
|
+
- Materi: SSR context, hydration concept, kapan kode jalan di server/client
|
|
63
|
+
- Praktik: buat contoh aman untuk akses browser API (`localStorage` guard)
|
|
64
|
+
- Output: 1 halaman demo server/client-safe behavior
|
|
65
|
+
|
|
66
|
+
**Checkpoint wajib sebelum lanjut:** peserta harus bisa menjelaskan CSR, SSR, dan hydration dengan contoh Nuxt sederhana.
|
|
67
|
+
|
|
68
|
+
### Hari 3 (Rabu): Pendalaman Struktur Proyek Nuxt
|
|
69
|
+
- Materi: `app/`, `pages/`, `layouts/`, `components/`, `composables/`, `server/api/`
|
|
70
|
+
- Praktik: susun mini structure feature (list + detail)
|
|
71
|
+
- Output: struktur folder feature yang rapi
|
|
72
|
+
|
|
73
|
+
**Fokus jalur desainer:** mapping page section Figma ke `pages/` + reusable blocks ke `components/`.
|
|
74
|
+
**Fokus jalur profesional:** pahami separation of concerns antara UI, composable, dan API layer.
|
|
75
|
+
|
|
76
|
+
### Hari 4 (Kamis): Nuxt Routing + Layout + Middleware Basic
|
|
77
|
+
- Materi: file-based routing, nested route, route middleware basics
|
|
78
|
+
- Praktik: tambah auth-like middleware sederhana (dummy check)
|
|
79
|
+
- Output: alur navigasi + guard route dasar
|
|
80
|
+
|
|
81
|
+
### Hari 5 (Jumat): Fundamental Alur Data Nuxt
|
|
82
|
+
- Materi: `useFetch` vs `useAsyncData` vs `$fetch`, kapan pakai masing-masing
|
|
83
|
+
- Praktik: implement 2 halaman data dengan strategi fetching berbeda
|
|
84
|
+
- Output: perbandingan singkat plus keputusan teknik
|
|
85
|
+
|
|
86
|
+
**Deliverable tambahan:** catatan keputusan kapan pakai `useFetch`, `useAsyncData`, atau pembungkus API proyek.
|
|
87
|
+
**Guardrail wajib:** dokumentasikan cara mencegah hydration mismatch pada implementasi API di tugas hari ini.
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Minggu 2 - Vue 3 + TypeScript Fundamental Terapan
|
|
92
|
+
|
|
93
|
+
**Tujuan minggu:** menguasai pola Vue modern dan type safety yang dipakai harian di Nuxt app.
|
|
94
|
+
|
|
95
|
+
### Hari 6 (Senin): Arsitektur Reactivity
|
|
96
|
+
- Materi: `ref`, `reactive`, `computed`, `watch`, efek ke re-render
|
|
97
|
+
- Praktik: filter/sort list berbasis computed
|
|
98
|
+
- Output: komponen list reactive dengan derived state bersih
|
|
99
|
+
|
|
100
|
+
### Hari 7 (Selasa): Kontrak Komponen
|
|
101
|
+
- Materi: props, emits, slots, one-way data flow
|
|
102
|
+
- Praktik: buat komponen card reusable + slot action
|
|
103
|
+
- Output: 2-3 komponen reusable dengan contract jelas
|
|
104
|
+
|
|
105
|
+
**Fokus jalur desainer:** terjemahkan component variants dari Figma ke props/slots yang skalabel.
|
|
106
|
+
|
|
107
|
+
### Hari 8 (Rabu): Desain Composable
|
|
108
|
+
- Materi: extract logic dari komponen ke composable
|
|
109
|
+
- Praktik: `useProducts` atau `useMarkets` composable
|
|
110
|
+
- Output: composable dengan loading/error state dan typed return
|
|
111
|
+
|
|
112
|
+
### Hari 9 (Kamis): TypeScript for Nuxt/Vue
|
|
113
|
+
- Materi: typing props, emits, API response, union + narrowing
|
|
114
|
+
- Praktik: tambah tipe pada flow data fetch + form state
|
|
115
|
+
- Output: modul fitur typed end-to-end dasar
|
|
116
|
+
|
|
117
|
+
**Fokus jalur profesional:** jelaskan error type paling sering dan cara narrowing sederhana untuk mengurangi bug produksi.
|
|
118
|
+
|
|
119
|
+
### Hari 10 (Jumat): Weekly Mini Build
|
|
120
|
+
- Materi: integrasi konsep minggu 2
|
|
121
|
+
- Praktik: build fitur "catalog/list + detail + action" kecil
|
|
122
|
+
- Output: mini fitur dengan arsitektur Vue yang rapi
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## Minggu 3 - Nuxt UI + Styling Sistematis Tailwind CSS
|
|
127
|
+
|
|
128
|
+
**Tujuan minggu:** membangun UI yang konsisten, cepat, dan maintainable dengan Nuxt UI + Tailwind.
|
|
129
|
+
|
|
130
|
+
Minggu ini adalah minggu utama untuk peserta dari latar UI/UX.
|
|
131
|
+
|
|
132
|
+
### Hari 11 (Senin): Alur Kerja Nuxt UI Component-First
|
|
133
|
+
- Materi: mapping kebutuhan UI ke komponen Nuxt UI
|
|
134
|
+
- Praktik: refactor elemen custom ke `UCard`, `UButton`, `UInput`, `UBadge`
|
|
135
|
+
- Output: 1 halaman UI dengan adopsi Nuxt UI dominan
|
|
136
|
+
|
|
137
|
+
**Deliverable tambahan:** tabel mapping komponen `Figma -> Nuxt UI`.
|
|
138
|
+
|
|
139
|
+
### Hari 12 (Selasa): Pola Form dengan Nuxt UI
|
|
140
|
+
- Materi: `UForm`, validasi input, error presentation
|
|
141
|
+
- Praktik: form create/edit dengan state submit dan error
|
|
142
|
+
- Output: form flow lengkap (validasi + feedback)
|
|
143
|
+
|
|
144
|
+
### Hari 13 (Rabu): Fundamental Tailwind untuk Nuxt
|
|
145
|
+
- Materi: utility-first workflow, spacing scale, responsive modifiers, state modifiers
|
|
146
|
+
- Praktik: styling halaman dengan utility classes konsisten
|
|
147
|
+
- Output: style guide mini (spacing + typography + color usage)
|
|
148
|
+
|
|
149
|
+
**Deliverable tambahan:** tabel mapping token `Figma token -> Tailwind utility/theme`.
|
|
150
|
+
|
|
151
|
+
### Hari 14 (Kamis): Pola Maintainability Tailwind
|
|
152
|
+
- Materi: class composition strategy, reusable class pattern, avoiding class chaos
|
|
153
|
+
- Praktik: rapikan class di beberapa komponen nyata
|
|
154
|
+
- Output: komponen lebih bersih dan mudah maintain
|
|
155
|
+
|
|
156
|
+
### Hari 15 (Jumat): Hari Review Konsistensi UI
|
|
157
|
+
- Materi: visual consistency, accessibility quick audit
|
|
158
|
+
- Praktik: audit 1 alur halaman (list -> detail -> submit)
|
|
159
|
+
- Output: daftar perbaikan UI/UX prioritas tinggi
|
|
160
|
+
|
|
161
|
+
**Deliverable tambahan:** lembar QA visual (state: default/hover/focus/disabled/loading).
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
## Minggu 4 - Fundamental Produksi (Delivery Aplikasi Nuxt)
|
|
166
|
+
|
|
167
|
+
**Tujuan minggu:** menggabungkan semua skill menjadi mini app siap demo dengan standar engineering dasar.
|
|
168
|
+
|
|
169
|
+
### Hari 16 (Senin): API Integration Strategy
|
|
170
|
+
- Materi: project API pattern (`useApi`/fetch wrapper), error normalization
|
|
171
|
+
- Praktik: integrasi 2 endpoint (list + mutation)
|
|
172
|
+
- Output: fitur data dengan success/error handling konsisten
|
|
173
|
+
|
|
174
|
+
### Hari 17 (Selasa): State Management Strategy
|
|
175
|
+
- Materi: local state vs shared state, kapan pakai Pinia/useState/composable
|
|
176
|
+
- Praktik: implement shared state untuk satu alur utama
|
|
177
|
+
- Output: state architecture ringkas + alasan pemilihan
|
|
178
|
+
|
|
179
|
+
### Hari 18 (Rabu): Performance + Accessibility Baseline
|
|
180
|
+
- Materi: lazy components, payload awareness, semantic/keyboard basics
|
|
181
|
+
- Praktik: optimasi 1 halaman berat + a11y cleanup
|
|
182
|
+
- Output: sebelum/sesudah (catatan improvement)
|
|
183
|
+
|
|
184
|
+
### Hari 19 (Kamis): Mindset Testing untuk Aplikasi Nuxt
|
|
185
|
+
- Materi: apa yang dites di unit/integration/E2E
|
|
186
|
+
- Praktik: tulis test plan untuk alur kritikal
|
|
187
|
+
- Output: 8-12 test case prioritas (dengan level test)
|
|
188
|
+
|
|
189
|
+
Tambahkan minimal 1 skenario verifikasi: "tidak muncul hydration mismatch warning pada flow utama".
|
|
190
|
+
|
|
191
|
+
### Hari 20 (Jumat): Demo Final dan Review
|
|
192
|
+
- Materi: technical storytelling, trade-off explanation
|
|
193
|
+
- Praktik: demo mini app + jelaskan keputusan arsitektur
|
|
194
|
+
- Output: mini app + review checklist + backlog improvement
|
|
195
|
+
|
|
196
|
+
**Mode presentasi tim (opsional):** presentasi 5-7 menit dengan struktur problem, approach, demo, trade-off.
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
## Rubrik Evaluasi Mingguan (Skor 1-5)
|
|
201
|
+
|
|
202
|
+
Nilai di akhir tiap minggu:
|
|
203
|
+
|
|
204
|
+
1. Pemahaman runtime dan framework
|
|
205
|
+
2. Kualitas struktur komponen/composable
|
|
206
|
+
3. Konsistensi Nuxt UI + Tailwind usage
|
|
207
|
+
4. Kualitas error handling dan state flow
|
|
208
|
+
5. Kesiapan ke praktik produksi
|
|
209
|
+
|
|
210
|
+
Tambahkan dimensi khusus:
|
|
211
|
+
|
|
212
|
+
6. Translasi desain ke code (khusus jalur desainer)
|
|
213
|
+
7. Kejelasan reasoning teknis saat presentasi (khusus jalur profesional)
|
|
214
|
+
|
|
215
|
+
Wajib tulis:
|
|
216
|
+
|
|
217
|
+
- 2 kekuatan utama minggu ini
|
|
218
|
+
- 2 gap paling penting untuk ditutup
|
|
219
|
+
- 1 fokus wajib minggu depan
|
|
220
|
+
|
|
221
|
+
## Template Sesi Harian
|
|
222
|
+
|
|
223
|
+
Gunakan format ini tiap hari:
|
|
224
|
+
|
|
225
|
+
```markdown
|
|
226
|
+
Hari ke-[x]
|
|
227
|
+
|
|
228
|
+
1) Refresh konsep (20-30 menit)
|
|
229
|
+
- [konsep yang ditargetkan]
|
|
230
|
+
|
|
231
|
+
2) Praktik coding terapan (60-100 menit)
|
|
232
|
+
- [tugas implementasi nyata]
|
|
233
|
+
|
|
234
|
+
3) Review dan refleksi (10-20 menit)
|
|
235
|
+
- Apa yang berjalan baik?
|
|
236
|
+
- Apa yang bermasalah?
|
|
237
|
+
- Apa yang harus ditingkatkan besok?
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
## Setelah 30 Hari (Jalur Lanjutan)
|
|
241
|
+
|
|
242
|
+
Pilih satu jalur lanjutan:
|
|
243
|
+
|
|
244
|
+
1. Bangun 2 mini apps Nuxt dengan scope berbeda (dashboard + form-heavy app)
|
|
245
|
+
2. Implement testing nyata (Vitest + Playwright) untuk 1 flow end-to-end
|
|
246
|
+
3. Dalami Nuxt server/api patterns + auth flow basics
|
|
247
|
+
4. Dalami performance profiling dan deployment readiness checklist
|
|
248
|
+
|
|
249
|
+
## Dokumen Pendamping
|
|
250
|
+
|
|
251
|
+
- Checklist harian: `MENTOR_CURRICULUM_CHECKLIST.md`
|
|
252
|
+
- Tugas mingguan + rubrik penilaian: `MENTOR_WEEKLY_ASSIGNMENTS.md`
|
|
253
|
+
|
|
254
|
+
---
|
|
255
|
+
|
|
256
|
+
_Roadmap ini dipakai oleh mentor agent untuk pembelajaran fundamental yang lebih tepat sasaran ke ekosistem Nuxt, bukan kelas pemrograman web dari nol._
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
# Checklist Kurikulum Mentor (30 Hari)
|
|
2
|
+
|
|
3
|
+
Checklist harian untuk menjalankan roadmap 30 hari jalur ekosistem Nuxt.
|
|
4
|
+
|
|
5
|
+
Gunakan status:
|
|
6
|
+
|
|
7
|
+
- `[ ]` belum dikerjakan
|
|
8
|
+
- `[~]` sedang dikerjakan
|
|
9
|
+
- `[x]` selesai
|
|
10
|
+
|
|
11
|
+
## Minggu 1 - Node.js + Fundamental Runtime Nuxt
|
|
12
|
+
|
|
13
|
+
### Hari 1 - Runtime Node.js
|
|
14
|
+
- [ ] Pahami event loop mental model
|
|
15
|
+
- [ ] Tinjau `package.json` scripts (`dev/build/preview`)
|
|
16
|
+
- [ ] Jalankan app dan dokumentasikan lifecycle eksekusi
|
|
17
|
+
- [ ] Tulis 3 insight teknis
|
|
18
|
+
|
|
19
|
+
### Hari 2 - Konteks Server vs Client di Nuxt
|
|
20
|
+
- [ ] Jelaskan perbedaan kode yang jalan di server vs client
|
|
21
|
+
- [ ] Implement guard browser API (`localStorage/window`)
|
|
22
|
+
- [ ] Verifikasi tidak ada runtime error di SSR context
|
|
23
|
+
- [ ] Catat 2 potensi hydration issue
|
|
24
|
+
- [ ] Jelaskan ulang konsep CSR, SSR, dan hydration dengan contoh Nuxt sederhana
|
|
25
|
+
|
|
26
|
+
### Hari 3 - Struktur Nuxt
|
|
27
|
+
- [ ] Audit struktur `app/`, `pages/`, `components/`, `composables/`, `server/api/`
|
|
28
|
+
- [ ] Buat struktur folder feature kecil
|
|
29
|
+
- [ ] Pisahkan logic UI dan logic data
|
|
30
|
+
- [ ] Tinjau konsistensi penamaan
|
|
31
|
+
|
|
32
|
+
### Hari 4 - Routing, Layout, Middleware
|
|
33
|
+
- [ ] Buat minimal 2 route + 1 nested route
|
|
34
|
+
- [ ] Gunakan layout yang sesuai
|
|
35
|
+
- [ ] Implement middleware check sederhana
|
|
36
|
+
- [ ] Verifikasi alur redirect/guard
|
|
37
|
+
|
|
38
|
+
### Hari 5 - Strategi Data Fetching
|
|
39
|
+
- [ ] Implement use case `useFetch`
|
|
40
|
+
- [ ] Implement use case `useAsyncData`
|
|
41
|
+
- [ ] Tulis kapan pakai masing-masing
|
|
42
|
+
- [ ] Dokumentasikan trade-off singkat
|
|
43
|
+
- [ ] Dokumentasikan langkah pencegahan hydration mismatch pada fetch API
|
|
44
|
+
|
|
45
|
+
## Minggu 2 - Vue 3 + TypeScript Terapan
|
|
46
|
+
|
|
47
|
+
### Hari 6 - Reactivity
|
|
48
|
+
- [ ] Gunakan `ref` dan `computed` untuk derived state
|
|
49
|
+
- [ ] Hindari logic berat di template
|
|
50
|
+
- [ ] Verifikasi perubahan state memicu UI sesuai ekspektasi
|
|
51
|
+
- [ ] Catat 2 anti-pattern yang dihindari
|
|
52
|
+
|
|
53
|
+
### Hari 7 - Kontrak Komponen
|
|
54
|
+
- [ ] Definisikan props yang jelas
|
|
55
|
+
- [ ] Implement emits untuk interaction
|
|
56
|
+
- [ ] Gunakan slot untuk fleksibilitas
|
|
57
|
+
- [ ] Verifikasi komponen reusable di 2 konteks
|
|
58
|
+
|
|
59
|
+
### Hari 8 - Desain Composable
|
|
60
|
+
- [ ] Ekstrak logic dari component ke composable
|
|
61
|
+
- [ ] Kembalikan state `data/loading/error`
|
|
62
|
+
- [ ] Tambahkan typing return composable
|
|
63
|
+
- [ ] Uji composable pada minimal 1 halaman
|
|
64
|
+
|
|
65
|
+
### Hari 9 - TypeScript di Nuxt/Vue
|
|
66
|
+
- [ ] Type props, emits, dan API response
|
|
67
|
+
- [ ] Gunakan union type atau narrowing pada alur error
|
|
68
|
+
- [ ] Hindari `any` di code baru
|
|
69
|
+
- [ ] Catat 3 error TS yang berhasil diselesaikan
|
|
70
|
+
|
|
71
|
+
### Hari 10 - Mini Build Mingguan
|
|
72
|
+
- [ ] Bangun mini fitur end-to-end
|
|
73
|
+
- [ ] Terapkan composable + typed flow
|
|
74
|
+
- [ ] Tangani state loading/error/empty
|
|
75
|
+
- [ ] Demo singkat hasil minggu 2
|
|
76
|
+
|
|
77
|
+
## Minggu 3 - Nuxt UI + Styling Tailwind
|
|
78
|
+
|
|
79
|
+
### Hari 11 - Nuxt UI Component-First
|
|
80
|
+
- [ ] Mapping Figma/custom blocks ke komponen Nuxt UI
|
|
81
|
+
- [ ] Gunakan `UCard/UButton/UInput/UBadge` sesuai kebutuhan
|
|
82
|
+
- [ ] Hindari custom HTML jika sudah ada padanan Nuxt UI
|
|
83
|
+
- [ ] Tulis daftar komponen yang dimigrasikan
|
|
84
|
+
|
|
85
|
+
### Hari 12 - Pola Form Nuxt UI
|
|
86
|
+
- [ ] Implement form dengan feedback error
|
|
87
|
+
- [ ] Handle submit/pending state
|
|
88
|
+
- [ ] Verifikasi state UX (default/error/success)
|
|
89
|
+
- [ ] Tinjau konsistensi label dan hint
|
|
90
|
+
|
|
91
|
+
### Hari 13 - Fundamental Tailwind
|
|
92
|
+
- [ ] Terapkan spacing/typography scale konsisten
|
|
93
|
+
- [ ] Gunakan responsive modifiers
|
|
94
|
+
- [ ] Gunakan state modifier (`hover/focus/disabled`)
|
|
95
|
+
- [ ] Buat token mapping mini dari design ke class
|
|
96
|
+
|
|
97
|
+
### Hari 14 - Maintainability Tailwind
|
|
98
|
+
- [ ] Rapikan class yang terlalu panjang/duplikat
|
|
99
|
+
- [ ] Kelompokkan class secara konsisten
|
|
100
|
+
- [ ] Tinjau keterbacaan komponen
|
|
101
|
+
- [ ] Catat 3 improvement pada maintainability
|
|
102
|
+
|
|
103
|
+
### Hari 15 - Review Konsistensi UI
|
|
104
|
+
- [ ] Audit visual consistency lintas halaman
|
|
105
|
+
- [ ] Cek state UI utama (default/hover/focus/disabled/loading)
|
|
106
|
+
- [ ] Cek aksesibilitas dasar (kontras + keyboard)
|
|
107
|
+
- [ ] Susun backlog perbaikan prioritas
|
|
108
|
+
|
|
109
|
+
## Minggu 4 - Fundamental Produksi
|
|
110
|
+
|
|
111
|
+
### Hari 16 - Strategi Integrasi API
|
|
112
|
+
- [ ] Implement list endpoint + mutation endpoint
|
|
113
|
+
- [ ] Normalisasi error message
|
|
114
|
+
- [ ] Verifikasi success/error states konsisten
|
|
115
|
+
- [ ] Catat retry/fallback strategy sederhana
|
|
116
|
+
|
|
117
|
+
### Hari 17 - Strategi Manajemen State
|
|
118
|
+
- [ ] Tentukan local vs shared state boundary
|
|
119
|
+
- [ ] Gunakan `useState`, Pinia, atau composable sesuai kasus
|
|
120
|
+
- [ ] Dokumentasikan alasan pemilihan
|
|
121
|
+
- [ ] Verifikasi tidak ada state duplication yang tidak perlu
|
|
122
|
+
|
|
123
|
+
### Hari 18 - Baseline Performa + A11y
|
|
124
|
+
- [ ] Terapkan lazy-loading atau split komponen berat
|
|
125
|
+
- [ ] Audit semantic structure
|
|
126
|
+
- [ ] Audit keyboard interactions dasar
|
|
127
|
+
- [ ] Dokumentasikan improvement sebelum/sesudah
|
|
128
|
+
|
|
129
|
+
### Hari 19 - Mindset Testing
|
|
130
|
+
- [ ] Tulis test plan unit/integration/E2E
|
|
131
|
+
- [ ] Prioritaskan alur kritikal
|
|
132
|
+
- [ ] Definisikan expected behavior per test case
|
|
133
|
+
- [ ] Tinjau area risiko yang belum ter-cover
|
|
134
|
+
- [ ] Tambahkan cek: tidak ada warning hydration mismatch pada flow utama
|
|
135
|
+
|
|
136
|
+
### Hari 20 - Demo Final
|
|
137
|
+
- [ ] Demo mini app end-to-end
|
|
138
|
+
- [ ] Jelaskan keputusan arsitektur inti
|
|
139
|
+
- [ ] Presentasikan trade-off dan backlog
|
|
140
|
+
- [ ] Tulis rencana 2 minggu lanjutan
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## Checklist Tambahan per Jalur
|
|
145
|
+
|
|
146
|
+
### Jalur Desainer (Figma -> Code)
|
|
147
|
+
- [ ] Buat component mapping table (Figma -> Nuxt UI)
|
|
148
|
+
- [ ] Buat token mapping table (Figma -> Tailwind/theme)
|
|
149
|
+
- [ ] Lakukan visual QA state-based
|
|
150
|
+
- [ ] Catat kompromi fidelity vs engineering constraints
|
|
151
|
+
|
|
152
|
+
### Jalur Profesional (Karyawan Umum)
|
|
153
|
+
- [ ] Kumpulkan weekly summary 1 halaman
|
|
154
|
+
- [ ] Lakukan presentasi teknis mingguan (5 menit)
|
|
155
|
+
- [ ] Dokumentasikan bug dan cara debug
|
|
156
|
+
- [ ] Simpan keputusan teknis penting (decision log)
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
# Tugas Mingguan Mentor (Jalur Ekosistem Nuxt)
|
|
2
|
+
|
|
3
|
+
Dokumen tugas mingguan untuk peserta di jalur ekosistem Nuxt.
|
|
4
|
+
|
|
5
|
+
## Tujuan Dokumen
|
|
6
|
+
|
|
7
|
+
- Memberi tugas terstruktur per minggu
|
|
8
|
+
- Menyamakan ekspektasi hasil belajar
|
|
9
|
+
- Menyediakan rubrik penilaian yang objektif
|
|
10
|
+
|
|
11
|
+
## Skema Penilaian
|
|
12
|
+
|
|
13
|
+
Skor total per minggu: **100**
|
|
14
|
+
|
|
15
|
+
- Implementasi teknis: 35
|
|
16
|
+
- Arsitektur dan maintainability: 20
|
|
17
|
+
- Konsistensi UI (Nuxt UI + Tailwind): 15
|
|
18
|
+
- Reliability (error handling/performance/a11y basics): 15
|
|
19
|
+
- Komunikasi reasoning teknis: 15
|
|
20
|
+
|
|
21
|
+
Nilai akhir rekomendasi:
|
|
22
|
+
|
|
23
|
+
- 85-100: Sangat baik (siap naik level)
|
|
24
|
+
- 70-84: Baik (perlu minor perbaikan)
|
|
25
|
+
- 55-69: Cukup (butuh penguatan area inti)
|
|
26
|
+
- <55: Perlu remedial terstruktur
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Tugas Minggu 1 - Runtime dan Konteks Framework
|
|
31
|
+
|
|
32
|
+
### Ringkasan
|
|
33
|
+
Bangun mini Nuxt app dengan minimal 3 halaman, 1 layout, dan 1 middleware dummy.
|
|
34
|
+
|
|
35
|
+
### Kebutuhan
|
|
36
|
+
1. Minimal 3 route (`/`, `/catalog`, `/profile` atau setara)
|
|
37
|
+
2. 1 route dilindungi middleware check sederhana
|
|
38
|
+
3. Tunjukkan pemahaman konteks server/client pada minimal 1 komponen
|
|
39
|
+
4. Sertakan catatan kapan data sebaiknya di-fetch di SSR vs CSR
|
|
40
|
+
|
|
41
|
+
### Hasil Wajib
|
|
42
|
+
- Source code feature minggu 1
|
|
43
|
+
- Dokumen singkat: `week1-decision-note.md`
|
|
44
|
+
- Demo 3-5 menit
|
|
45
|
+
|
|
46
|
+
### Rubrik Minggu 1
|
|
47
|
+
- Routing/layout/middleware benar (25)
|
|
48
|
+
- SSR/client context dipahami (25)
|
|
49
|
+
- Struktur folder rapi (20)
|
|
50
|
+
- Kejelasan catatan keputusan (15)
|
|
51
|
+
- Komunikasi saat demo (15)
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## Tugas Minggu 2 - Arsitektur Vue + Type Safety
|
|
56
|
+
|
|
57
|
+
### Ringkasan
|
|
58
|
+
Bangun fitur list-detail dengan komponen reusable + composable + TypeScript.
|
|
59
|
+
|
|
60
|
+
### Kebutuhan
|
|
61
|
+
1. Minimal 2 komponen reusable (card/list item + detail section)
|
|
62
|
+
2. Gunakan 1 composable untuk alur data
|
|
63
|
+
3. Type-safe props, emits, dan response model
|
|
64
|
+
4. Handle loading/error/empty states
|
|
65
|
+
|
|
66
|
+
### Hasil Wajib
|
|
67
|
+
- Source code fitur minggu 2
|
|
68
|
+
- Dokumen singkat: `week2-architecture-note.md`
|
|
69
|
+
- Demo 5 menit
|
|
70
|
+
|
|
71
|
+
### Rubrik Minggu 2
|
|
72
|
+
- Kualitas kontrak komponen (25)
|
|
73
|
+
- Kualitas desain composable (25)
|
|
74
|
+
- TypeScript correctness (20)
|
|
75
|
+
- Kualitas penanganan state (15)
|
|
76
|
+
- Kejelasan reasoning teknis (15)
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Tugas Minggu 3 - Design System ke Code
|
|
81
|
+
|
|
82
|
+
### Ringkasan
|
|
83
|
+
Implement satu alur UI berdasarkan referensi desain (Figma/mock) dengan Nuxt UI + Tailwind.
|
|
84
|
+
|
|
85
|
+
### Kebutuhan
|
|
86
|
+
1. Gunakan Nuxt UI sebagai basis komponen utama
|
|
87
|
+
2. Gunakan Tailwind class secara konsisten dan maintainable
|
|
88
|
+
3. Sertakan state visual: default, hover, focus, disabled, loading
|
|
89
|
+
4. Buat tabel mapping:
|
|
90
|
+
- Figma component -> Nuxt UI component
|
|
91
|
+
- Figma token -> Tailwind utility/theme
|
|
92
|
+
|
|
93
|
+
### Hasil Wajib
|
|
94
|
+
- Source code alur UI minggu 3
|
|
95
|
+
- `week3-figma-to-code-mapping.md`
|
|
96
|
+
- Visual QA checklist
|
|
97
|
+
- Demo 5-7 menit
|
|
98
|
+
|
|
99
|
+
### Rubrik Minggu 3
|
|
100
|
+
- Ketepatan adopsi Nuxt UI (25)
|
|
101
|
+
- Konsistensi dan kerapian Tailwind (20)
|
|
102
|
+
- Fidelity desain dengan trade-off yang rasional (20)
|
|
103
|
+
- Kelengkapan state + dasar aksesibilitas (20)
|
|
104
|
+
- Kualitas dokumentasi mapping (15)
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## Tugas Minggu 4 - Capstone Fundamental Produksi
|
|
109
|
+
|
|
110
|
+
### Ringkasan
|
|
111
|
+
Final mini app: list + detail + create/update action dengan baseline kualitas produksi.
|
|
112
|
+
|
|
113
|
+
### Kebutuhan
|
|
114
|
+
1. Alur data end-to-end (read + mutation)
|
|
115
|
+
2. Shared state strategy yang jelas
|
|
116
|
+
3. Error handling yang konsisten
|
|
117
|
+
4. Perbaikan baseline performa minimal 1 area
|
|
118
|
+
5. Test plan (unit/integration/E2E) untuk alur kritikal
|
|
119
|
+
|
|
120
|
+
### Hasil Wajib
|
|
121
|
+
- Final mini app
|
|
122
|
+
- `week4-capstone-report.md`
|
|
123
|
+
- Test plan 8-12 test case
|
|
124
|
+
- Demo final 7-10 menit
|
|
125
|
+
|
|
126
|
+
### Rubrik Minggu 4
|
|
127
|
+
- Kelengkapan fitur end-to-end (25)
|
|
128
|
+
- Keputusan arsitektur dan state (20)
|
|
129
|
+
- Kualitas reliability/error handling (20)
|
|
130
|
+
- Baseline performa + aksesibilitas (15)
|
|
131
|
+
- Test plan + komunikasi teknis (20)
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## Penyesuaian Berdasarkan Jalur
|
|
136
|
+
|
|
137
|
+
### Jalur Desainer (UI/UX + Figma)
|
|
138
|
+
|
|
139
|
+
Tambahan penilaian:
|
|
140
|
+
|
|
141
|
+
- Akurasi translasi design token (+10 bonus)
|
|
142
|
+
- Kelengkapan QA visual (+5 bonus)
|
|
143
|
+
|
|
144
|
+
Fokus feedback:
|
|
145
|
+
|
|
146
|
+
- Konsistensi komponen
|
|
147
|
+
- Fidelity desain yang realistis
|
|
148
|
+
- Detail interaksi state
|
|
149
|
+
|
|
150
|
+
### Jalur Profesional (Karyawan Umum)
|
|
151
|
+
|
|
152
|
+
Tambahan penilaian:
|
|
153
|
+
|
|
154
|
+
- Dokumentasi reasoning teknis (+10 bonus)
|
|
155
|
+
- Kualitas presentasi teknis (+5 bonus)
|
|
156
|
+
|
|
157
|
+
Fokus feedback:
|
|
158
|
+
|
|
159
|
+
- Kejelasan pilihan arsitektur
|
|
160
|
+
- Kedewasaan proses debugging
|
|
161
|
+
- Konsistensi kualitas implementasi
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
## Template Umpan Balik (Per Minggu)
|
|
166
|
+
|
|
167
|
+
Gunakan format ini:
|
|
168
|
+
|
|
169
|
+
```markdown
|
|
170
|
+
Feedback Minggu [x]
|
|
171
|
+
|
|
172
|
+
Skor: [0-100]
|
|
173
|
+
|
|
174
|
+
Yang sudah bagus:
|
|
175
|
+
- ...
|
|
176
|
+
- ...
|
|
177
|
+
|
|
178
|
+
Yang perlu ditingkatkan:
|
|
179
|
+
- ...
|
|
180
|
+
- ...
|
|
181
|
+
|
|
182
|
+
Prioritas utama minggu depan:
|
|
183
|
+
- ...
|
|
184
|
+
|
|
185
|
+
Referensi yang direkomendasikan:
|
|
186
|
+
- ...
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
_Dokumen ini dipakai bersama roadmap 30 hari untuk memastikan proses belajar tetap terukur, praktis, dan relevan dengan kebutuhan ekosistem Nuxt._
|