solokit 0.1.1__py3-none-any.whl
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.
- solokit/__init__.py +10 -0
- solokit/__version__.py +3 -0
- solokit/cli.py +374 -0
- solokit/core/__init__.py +1 -0
- solokit/core/cache.py +102 -0
- solokit/core/command_runner.py +278 -0
- solokit/core/config.py +453 -0
- solokit/core/config_validator.py +204 -0
- solokit/core/constants.py +291 -0
- solokit/core/error_formatter.py +279 -0
- solokit/core/error_handlers.py +346 -0
- solokit/core/exceptions.py +1567 -0
- solokit/core/file_ops.py +309 -0
- solokit/core/logging_config.py +166 -0
- solokit/core/output.py +99 -0
- solokit/core/performance.py +57 -0
- solokit/core/protocols.py +141 -0
- solokit/core/types.py +312 -0
- solokit/deployment/__init__.py +1 -0
- solokit/deployment/executor.py +411 -0
- solokit/git/__init__.py +1 -0
- solokit/git/integration.py +619 -0
- solokit/init/__init__.py +41 -0
- solokit/init/claude_commands_installer.py +87 -0
- solokit/init/dependency_installer.py +313 -0
- solokit/init/docs_structure.py +90 -0
- solokit/init/env_generator.py +160 -0
- solokit/init/environment_validator.py +334 -0
- solokit/init/git_hooks_installer.py +71 -0
- solokit/init/git_setup.py +188 -0
- solokit/init/gitignore_updater.py +195 -0
- solokit/init/initial_commit.py +145 -0
- solokit/init/initial_scans.py +109 -0
- solokit/init/orchestrator.py +246 -0
- solokit/init/readme_generator.py +207 -0
- solokit/init/session_structure.py +239 -0
- solokit/init/template_installer.py +424 -0
- solokit/learning/__init__.py +1 -0
- solokit/learning/archiver.py +115 -0
- solokit/learning/categorizer.py +126 -0
- solokit/learning/curator.py +428 -0
- solokit/learning/extractor.py +352 -0
- solokit/learning/reporter.py +351 -0
- solokit/learning/repository.py +254 -0
- solokit/learning/similarity.py +342 -0
- solokit/learning/validator.py +144 -0
- solokit/project/__init__.py +1 -0
- solokit/project/init.py +1162 -0
- solokit/project/stack.py +436 -0
- solokit/project/sync_plugin.py +438 -0
- solokit/project/tree.py +375 -0
- solokit/quality/__init__.py +1 -0
- solokit/quality/api_validator.py +424 -0
- solokit/quality/checkers/__init__.py +25 -0
- solokit/quality/checkers/base.py +114 -0
- solokit/quality/checkers/context7.py +221 -0
- solokit/quality/checkers/custom.py +162 -0
- solokit/quality/checkers/deployment.py +323 -0
- solokit/quality/checkers/documentation.py +179 -0
- solokit/quality/checkers/formatting.py +161 -0
- solokit/quality/checkers/integration.py +394 -0
- solokit/quality/checkers/linting.py +159 -0
- solokit/quality/checkers/security.py +261 -0
- solokit/quality/checkers/spec_completeness.py +127 -0
- solokit/quality/checkers/tests.py +184 -0
- solokit/quality/env_validator.py +306 -0
- solokit/quality/gates.py +655 -0
- solokit/quality/reporters/__init__.py +10 -0
- solokit/quality/reporters/base.py +25 -0
- solokit/quality/reporters/console.py +98 -0
- solokit/quality/reporters/json_reporter.py +34 -0
- solokit/quality/results.py +98 -0
- solokit/session/__init__.py +1 -0
- solokit/session/briefing/__init__.py +245 -0
- solokit/session/briefing/documentation_loader.py +53 -0
- solokit/session/briefing/formatter.py +476 -0
- solokit/session/briefing/git_context.py +282 -0
- solokit/session/briefing/learning_loader.py +212 -0
- solokit/session/briefing/milestone_builder.py +78 -0
- solokit/session/briefing/orchestrator.py +137 -0
- solokit/session/briefing/stack_detector.py +51 -0
- solokit/session/briefing/tree_generator.py +52 -0
- solokit/session/briefing/work_item_loader.py +209 -0
- solokit/session/briefing.py +353 -0
- solokit/session/complete.py +1188 -0
- solokit/session/status.py +246 -0
- solokit/session/validate.py +452 -0
- solokit/templates/.claude/commands/end.md +109 -0
- solokit/templates/.claude/commands/init.md +159 -0
- solokit/templates/.claude/commands/learn-curate.md +88 -0
- solokit/templates/.claude/commands/learn-search.md +62 -0
- solokit/templates/.claude/commands/learn-show.md +69 -0
- solokit/templates/.claude/commands/learn.md +136 -0
- solokit/templates/.claude/commands/start.md +114 -0
- solokit/templates/.claude/commands/status.md +22 -0
- solokit/templates/.claude/commands/validate.md +27 -0
- solokit/templates/.claude/commands/work-delete.md +119 -0
- solokit/templates/.claude/commands/work-graph.md +139 -0
- solokit/templates/.claude/commands/work-list.md +26 -0
- solokit/templates/.claude/commands/work-new.md +114 -0
- solokit/templates/.claude/commands/work-next.md +25 -0
- solokit/templates/.claude/commands/work-show.md +24 -0
- solokit/templates/.claude/commands/work-update.md +141 -0
- solokit/templates/CHANGELOG.md +17 -0
- solokit/templates/WORK_ITEM_TYPES.md +141 -0
- solokit/templates/__init__.py +1 -0
- solokit/templates/bug_spec.md +217 -0
- solokit/templates/config.schema.json +150 -0
- solokit/templates/dashboard_refine/base/.gitignore +36 -0
- solokit/templates/dashboard_refine/base/app/(dashboard)/layout.tsx +22 -0
- solokit/templates/dashboard_refine/base/app/(dashboard)/page.tsx +68 -0
- solokit/templates/dashboard_refine/base/app/(dashboard)/users/page.tsx +77 -0
- solokit/templates/dashboard_refine/base/app/globals.css +60 -0
- solokit/templates/dashboard_refine/base/app/layout.tsx +23 -0
- solokit/templates/dashboard_refine/base/app/page.tsx +9 -0
- solokit/templates/dashboard_refine/base/components/client-refine-wrapper.tsx +21 -0
- solokit/templates/dashboard_refine/base/components/layout/header.tsx +44 -0
- solokit/templates/dashboard_refine/base/components/layout/sidebar.tsx +82 -0
- solokit/templates/dashboard_refine/base/components/ui/button.tsx +53 -0
- solokit/templates/dashboard_refine/base/components/ui/card.tsx +78 -0
- solokit/templates/dashboard_refine/base/components/ui/table.tsx +116 -0
- solokit/templates/dashboard_refine/base/components.json +16 -0
- solokit/templates/dashboard_refine/base/lib/refine.tsx +65 -0
- solokit/templates/dashboard_refine/base/lib/utils.ts +13 -0
- solokit/templates/dashboard_refine/base/next.config.ts +10 -0
- solokit/templates/dashboard_refine/base/package.json.template +40 -0
- solokit/templates/dashboard_refine/base/postcss.config.mjs +8 -0
- solokit/templates/dashboard_refine/base/providers/refine-provider.tsx +26 -0
- solokit/templates/dashboard_refine/base/tailwind.config.ts +57 -0
- solokit/templates/dashboard_refine/base/tsconfig.json +27 -0
- solokit/templates/dashboard_refine/docker/Dockerfile +57 -0
- solokit/templates/dashboard_refine/docker/docker-compose.prod.yml +31 -0
- solokit/templates/dashboard_refine/docker/docker-compose.yml +21 -0
- solokit/templates/dashboard_refine/tier-1-essential/.eslintrc.json +7 -0
- solokit/templates/dashboard_refine/tier-1-essential/jest.config.ts +17 -0
- solokit/templates/dashboard_refine/tier-1-essential/jest.setup.ts +1 -0
- solokit/templates/dashboard_refine/tier-1-essential/package.json.tier1.template +57 -0
- solokit/templates/dashboard_refine/tier-1-essential/tests/setup.ts +26 -0
- solokit/templates/dashboard_refine/tier-1-essential/tests/unit/example.test.tsx +73 -0
- solokit/templates/dashboard_refine/tier-2-standard/package.json.tier2.template +62 -0
- solokit/templates/dashboard_refine/tier-3-comprehensive/eslint.config.mjs +22 -0
- solokit/templates/dashboard_refine/tier-3-comprehensive/package.json.tier3.template +79 -0
- solokit/templates/dashboard_refine/tier-3-comprehensive/playwright.config.ts +66 -0
- solokit/templates/dashboard_refine/tier-3-comprehensive/stryker.conf.json +38 -0
- solokit/templates/dashboard_refine/tier-3-comprehensive/tests/e2e/dashboard.spec.ts +88 -0
- solokit/templates/dashboard_refine/tier-3-comprehensive/tests/e2e/user-management.spec.ts +102 -0
- solokit/templates/dashboard_refine/tier-3-comprehensive/tests/integration/dashboard.test.tsx +90 -0
- solokit/templates/dashboard_refine/tier-3-comprehensive/type-coverage.json +16 -0
- solokit/templates/dashboard_refine/tier-4-production/instrumentation.ts +9 -0
- solokit/templates/dashboard_refine/tier-4-production/k6/dashboard-load-test.js +70 -0
- solokit/templates/dashboard_refine/tier-4-production/next.config.ts +46 -0
- solokit/templates/dashboard_refine/tier-4-production/package.json.tier4.template +89 -0
- solokit/templates/dashboard_refine/tier-4-production/sentry.client.config.ts +26 -0
- solokit/templates/dashboard_refine/tier-4-production/sentry.edge.config.ts +11 -0
- solokit/templates/dashboard_refine/tier-4-production/sentry.server.config.ts +11 -0
- solokit/templates/deployment_spec.md +500 -0
- solokit/templates/feature_spec.md +248 -0
- solokit/templates/fullstack_nextjs/base/.gitignore +36 -0
- solokit/templates/fullstack_nextjs/base/app/api/example/route.ts +65 -0
- solokit/templates/fullstack_nextjs/base/app/globals.css +27 -0
- solokit/templates/fullstack_nextjs/base/app/layout.tsx +20 -0
- solokit/templates/fullstack_nextjs/base/app/page.tsx +32 -0
- solokit/templates/fullstack_nextjs/base/components/example-component.tsx +20 -0
- solokit/templates/fullstack_nextjs/base/lib/prisma.ts +17 -0
- solokit/templates/fullstack_nextjs/base/lib/utils.ts +13 -0
- solokit/templates/fullstack_nextjs/base/lib/validations.ts +20 -0
- solokit/templates/fullstack_nextjs/base/next.config.ts +7 -0
- solokit/templates/fullstack_nextjs/base/package.json.template +32 -0
- solokit/templates/fullstack_nextjs/base/postcss.config.mjs +8 -0
- solokit/templates/fullstack_nextjs/base/prisma/schema.prisma +21 -0
- solokit/templates/fullstack_nextjs/base/tailwind.config.ts +19 -0
- solokit/templates/fullstack_nextjs/base/tsconfig.json +27 -0
- solokit/templates/fullstack_nextjs/docker/Dockerfile +60 -0
- solokit/templates/fullstack_nextjs/docker/docker-compose.prod.yml +57 -0
- solokit/templates/fullstack_nextjs/docker/docker-compose.yml +47 -0
- solokit/templates/fullstack_nextjs/tier-1-essential/.eslintrc.json +7 -0
- solokit/templates/fullstack_nextjs/tier-1-essential/jest.config.ts +17 -0
- solokit/templates/fullstack_nextjs/tier-1-essential/jest.setup.ts +1 -0
- solokit/templates/fullstack_nextjs/tier-1-essential/package.json.tier1.template +48 -0
- solokit/templates/fullstack_nextjs/tier-1-essential/tests/api/example.test.ts +88 -0
- solokit/templates/fullstack_nextjs/tier-1-essential/tests/setup.ts +22 -0
- solokit/templates/fullstack_nextjs/tier-1-essential/tests/unit/example.test.tsx +22 -0
- solokit/templates/fullstack_nextjs/tier-2-standard/package.json.tier2.template +52 -0
- solokit/templates/fullstack_nextjs/tier-3-comprehensive/eslint.config.mjs +39 -0
- solokit/templates/fullstack_nextjs/tier-3-comprehensive/package.json.tier3.template +68 -0
- solokit/templates/fullstack_nextjs/tier-3-comprehensive/playwright.config.ts +66 -0
- solokit/templates/fullstack_nextjs/tier-3-comprehensive/stryker.conf.json +33 -0
- solokit/templates/fullstack_nextjs/tier-3-comprehensive/tests/e2e/flow.spec.ts +59 -0
- solokit/templates/fullstack_nextjs/tier-3-comprehensive/tests/integration/api.test.ts +165 -0
- solokit/templates/fullstack_nextjs/tier-3-comprehensive/type-coverage.json +12 -0
- solokit/templates/fullstack_nextjs/tier-4-production/instrumentation.ts +9 -0
- solokit/templates/fullstack_nextjs/tier-4-production/k6/load-test.js +45 -0
- solokit/templates/fullstack_nextjs/tier-4-production/next.config.ts +46 -0
- solokit/templates/fullstack_nextjs/tier-4-production/package.json.tier4.template +77 -0
- solokit/templates/fullstack_nextjs/tier-4-production/sentry.client.config.ts +26 -0
- solokit/templates/fullstack_nextjs/tier-4-production/sentry.edge.config.ts +11 -0
- solokit/templates/fullstack_nextjs/tier-4-production/sentry.server.config.ts +11 -0
- solokit/templates/git-hooks/prepare-commit-msg +24 -0
- solokit/templates/integration_test_spec.md +363 -0
- solokit/templates/learnings.json +15 -0
- solokit/templates/ml_ai_fastapi/base/.gitignore +104 -0
- solokit/templates/ml_ai_fastapi/base/alembic/env.py +96 -0
- solokit/templates/ml_ai_fastapi/base/alembic.ini +114 -0
- solokit/templates/ml_ai_fastapi/base/pyproject.toml.template +91 -0
- solokit/templates/ml_ai_fastapi/base/requirements.txt.template +28 -0
- solokit/templates/ml_ai_fastapi/base/src/__init__.py +5 -0
- solokit/templates/ml_ai_fastapi/base/src/api/__init__.py +3 -0
- solokit/templates/ml_ai_fastapi/base/src/api/dependencies.py +20 -0
- solokit/templates/ml_ai_fastapi/base/src/api/routes/__init__.py +3 -0
- solokit/templates/ml_ai_fastapi/base/src/api/routes/example.py +134 -0
- solokit/templates/ml_ai_fastapi/base/src/api/routes/health.py +66 -0
- solokit/templates/ml_ai_fastapi/base/src/core/__init__.py +3 -0
- solokit/templates/ml_ai_fastapi/base/src/core/config.py +64 -0
- solokit/templates/ml_ai_fastapi/base/src/core/database.py +50 -0
- solokit/templates/ml_ai_fastapi/base/src/main.py +64 -0
- solokit/templates/ml_ai_fastapi/base/src/models/__init__.py +7 -0
- solokit/templates/ml_ai_fastapi/base/src/models/example.py +61 -0
- solokit/templates/ml_ai_fastapi/base/src/services/__init__.py +3 -0
- solokit/templates/ml_ai_fastapi/base/src/services/example.py +115 -0
- solokit/templates/ml_ai_fastapi/docker/Dockerfile +59 -0
- solokit/templates/ml_ai_fastapi/docker/docker-compose.prod.yml +112 -0
- solokit/templates/ml_ai_fastapi/docker/docker-compose.yml +77 -0
- solokit/templates/ml_ai_fastapi/tier-1-essential/pyproject.toml.tier1.template +112 -0
- solokit/templates/ml_ai_fastapi/tier-1-essential/pyrightconfig.json +41 -0
- solokit/templates/ml_ai_fastapi/tier-1-essential/pytest.ini +69 -0
- solokit/templates/ml_ai_fastapi/tier-1-essential/requirements-dev.txt +17 -0
- solokit/templates/ml_ai_fastapi/tier-1-essential/ruff.toml +81 -0
- solokit/templates/ml_ai_fastapi/tier-1-essential/tests/__init__.py +3 -0
- solokit/templates/ml_ai_fastapi/tier-1-essential/tests/conftest.py +72 -0
- solokit/templates/ml_ai_fastapi/tier-1-essential/tests/test_main.py +49 -0
- solokit/templates/ml_ai_fastapi/tier-1-essential/tests/unit/__init__.py +3 -0
- solokit/templates/ml_ai_fastapi/tier-1-essential/tests/unit/test_example.py +113 -0
- solokit/templates/ml_ai_fastapi/tier-2-standard/pyproject.toml.tier2.template +130 -0
- solokit/templates/ml_ai_fastapi/tier-3-comprehensive/locustfile.py +99 -0
- solokit/templates/ml_ai_fastapi/tier-3-comprehensive/mutmut_config.py +53 -0
- solokit/templates/ml_ai_fastapi/tier-3-comprehensive/pyproject.toml.tier3.template +150 -0
- solokit/templates/ml_ai_fastapi/tier-3-comprehensive/tests/integration/__init__.py +3 -0
- solokit/templates/ml_ai_fastapi/tier-3-comprehensive/tests/integration/conftest.py +74 -0
- solokit/templates/ml_ai_fastapi/tier-3-comprehensive/tests/integration/test_api.py +131 -0
- solokit/templates/ml_ai_fastapi/tier-4-production/pyproject.toml.tier4.template +162 -0
- solokit/templates/ml_ai_fastapi/tier-4-production/requirements-prod.txt +25 -0
- solokit/templates/ml_ai_fastapi/tier-4-production/src/api/routes/metrics.py +19 -0
- solokit/templates/ml_ai_fastapi/tier-4-production/src/core/logging.py +74 -0
- solokit/templates/ml_ai_fastapi/tier-4-production/src/core/monitoring.py +68 -0
- solokit/templates/ml_ai_fastapi/tier-4-production/src/core/sentry.py +66 -0
- solokit/templates/ml_ai_fastapi/tier-4-production/src/middleware/__init__.py +3 -0
- solokit/templates/ml_ai_fastapi/tier-4-production/src/middleware/logging.py +79 -0
- solokit/templates/ml_ai_fastapi/tier-4-production/src/middleware/tracing.py +60 -0
- solokit/templates/refactor_spec.md +287 -0
- solokit/templates/saas_t3/base/.gitignore +36 -0
- solokit/templates/saas_t3/base/app/api/trpc/[trpc]/route.ts +33 -0
- solokit/templates/saas_t3/base/app/globals.css +27 -0
- solokit/templates/saas_t3/base/app/layout.tsx +23 -0
- solokit/templates/saas_t3/base/app/page.tsx +31 -0
- solokit/templates/saas_t3/base/lib/api.tsx +77 -0
- solokit/templates/saas_t3/base/lib/utils.ts +13 -0
- solokit/templates/saas_t3/base/next.config.ts +7 -0
- solokit/templates/saas_t3/base/package.json.template +38 -0
- solokit/templates/saas_t3/base/postcss.config.mjs +8 -0
- solokit/templates/saas_t3/base/prisma/schema.prisma +20 -0
- solokit/templates/saas_t3/base/server/api/root.ts +19 -0
- solokit/templates/saas_t3/base/server/api/routers/example.ts +28 -0
- solokit/templates/saas_t3/base/server/api/trpc.ts +52 -0
- solokit/templates/saas_t3/base/server/db.ts +17 -0
- solokit/templates/saas_t3/base/tailwind.config.ts +19 -0
- solokit/templates/saas_t3/base/tsconfig.json +27 -0
- solokit/templates/saas_t3/docker/Dockerfile +60 -0
- solokit/templates/saas_t3/docker/docker-compose.prod.yml +59 -0
- solokit/templates/saas_t3/docker/docker-compose.yml +49 -0
- solokit/templates/saas_t3/tier-1-essential/.eslintrc.json +7 -0
- solokit/templates/saas_t3/tier-1-essential/jest.config.ts +17 -0
- solokit/templates/saas_t3/tier-1-essential/jest.setup.ts +1 -0
- solokit/templates/saas_t3/tier-1-essential/package.json.tier1.template +54 -0
- solokit/templates/saas_t3/tier-1-essential/tests/setup.ts +22 -0
- solokit/templates/saas_t3/tier-1-essential/tests/unit/example.test.tsx +24 -0
- solokit/templates/saas_t3/tier-2-standard/package.json.tier2.template +58 -0
- solokit/templates/saas_t3/tier-3-comprehensive/eslint.config.mjs +39 -0
- solokit/templates/saas_t3/tier-3-comprehensive/package.json.tier3.template +74 -0
- solokit/templates/saas_t3/tier-3-comprehensive/playwright.config.ts +66 -0
- solokit/templates/saas_t3/tier-3-comprehensive/stryker.conf.json +34 -0
- solokit/templates/saas_t3/tier-3-comprehensive/tests/e2e/home.spec.ts +41 -0
- solokit/templates/saas_t3/tier-3-comprehensive/tests/integration/api.test.ts +44 -0
- solokit/templates/saas_t3/tier-3-comprehensive/type-coverage.json +12 -0
- solokit/templates/saas_t3/tier-4-production/instrumentation.ts +9 -0
- solokit/templates/saas_t3/tier-4-production/k6/load-test.js +51 -0
- solokit/templates/saas_t3/tier-4-production/next.config.ts +46 -0
- solokit/templates/saas_t3/tier-4-production/package.json.tier4.template +83 -0
- solokit/templates/saas_t3/tier-4-production/sentry.client.config.ts +26 -0
- solokit/templates/saas_t3/tier-4-production/sentry.edge.config.ts +11 -0
- solokit/templates/saas_t3/tier-4-production/sentry.server.config.ts +11 -0
- solokit/templates/saas_t3/tier-4-production/vercel.json +37 -0
- solokit/templates/security_spec.md +287 -0
- solokit/templates/stack-versions.yaml +617 -0
- solokit/templates/status_update.json +6 -0
- solokit/templates/template-registry.json +257 -0
- solokit/templates/work_items.json +11 -0
- solokit/testing/__init__.py +1 -0
- solokit/testing/integration_runner.py +550 -0
- solokit/testing/performance.py +637 -0
- solokit/visualization/__init__.py +1 -0
- solokit/visualization/dependency_graph.py +788 -0
- solokit/work_items/__init__.py +1 -0
- solokit/work_items/creator.py +217 -0
- solokit/work_items/delete.py +264 -0
- solokit/work_items/get_dependencies.py +185 -0
- solokit/work_items/get_dependents.py +113 -0
- solokit/work_items/get_metadata.py +121 -0
- solokit/work_items/get_next_recommendations.py +133 -0
- solokit/work_items/manager.py +235 -0
- solokit/work_items/milestones.py +137 -0
- solokit/work_items/query.py +376 -0
- solokit/work_items/repository.py +267 -0
- solokit/work_items/scheduler.py +184 -0
- solokit/work_items/spec_parser.py +838 -0
- solokit/work_items/spec_validator.py +493 -0
- solokit/work_items/updater.py +157 -0
- solokit/work_items/validator.py +205 -0
- solokit-0.1.1.dist-info/METADATA +640 -0
- solokit-0.1.1.dist-info/RECORD +323 -0
- solokit-0.1.1.dist-info/WHEEL +5 -0
- solokit-0.1.1.dist-info/entry_points.txt +2 -0
- solokit-0.1.1.dist-info/licenses/LICENSE +21 -0
- solokit-0.1.1.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Start a new development session with comprehensive briefing
|
|
3
|
+
argument-hint: [work_item_id]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Session Start
|
|
7
|
+
|
|
8
|
+
## Step 1: Determine Work Item to Start
|
|
9
|
+
|
|
10
|
+
**If user provided a work item ID in `$ARGUMENTS`:**
|
|
11
|
+
- Skip to Step 3 and start that specific work item
|
|
12
|
+
|
|
13
|
+
**If no work item ID provided:**
|
|
14
|
+
- Continue to Step 2 for interactive selection
|
|
15
|
+
|
|
16
|
+
## Step 2: Get Recommendations and Ask User
|
|
17
|
+
|
|
18
|
+
Get the top 4 recommended work items:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
python -m solokit.work_items.get_next_recommendations --limit 4
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
This will output ready-to-start work items in format:
|
|
25
|
+
```
|
|
26
|
+
work_item_id | type | title | priority
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Parse the output and present options using `AskUserQuestion`:
|
|
30
|
+
|
|
31
|
+
**Question: Which work item do you want to start?**
|
|
32
|
+
- Question: "Select a work item to start working on:"
|
|
33
|
+
- Header: "Work Item"
|
|
34
|
+
- Multi-select: false
|
|
35
|
+
- Options (up to 4):
|
|
36
|
+
- Label: "{work_item_id}: {title}", Description: "Type: {type} | Priority: {priority}"
|
|
37
|
+
- Label: "{work_item_id}: {title}", Description: "Type: {type} | Priority: {priority}"
|
|
38
|
+
- Label: "{work_item_id}: {title}", Description: "Type: {type} | Priority: {priority}"
|
|
39
|
+
- Label: "{work_item_id}: {title}", Description: "Type: {type} | Priority: {priority}"
|
|
40
|
+
|
|
41
|
+
**Example option formatting:**
|
|
42
|
+
- Label: "feature_auth: Add user authentication"
|
|
43
|
+
- Description: "Type: feature | Priority: high"
|
|
44
|
+
|
|
45
|
+
**If no ready work items found:**
|
|
46
|
+
- The script will exit with error
|
|
47
|
+
- Show message: "No work items ready to start. All items are blocked by dependencies or already in progress."
|
|
48
|
+
- Display hint: "Use /work-list to see all work items and their status."
|
|
49
|
+
- Exit without calling command
|
|
50
|
+
|
|
51
|
+
## Step 3: Start Session
|
|
52
|
+
|
|
53
|
+
Based on the selected work item ID (either from user argument or interactive selection):
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
sk start {work_item_id}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Replace `{work_item_id}` with:
|
|
60
|
+
- The value from `$ARGUMENTS` if user provided it
|
|
61
|
+
- The selected work item ID from Step 2 if interactive selection was used
|
|
62
|
+
|
|
63
|
+
The briefing includes:
|
|
64
|
+
- Complete project context (technology stack, directory tree, documentation)
|
|
65
|
+
- **Previous work context** (for in-progress items) - commits made, files changed, quality gates from prior sessions
|
|
66
|
+
- **Full work item specification from `.session/specs/{work_item_id}.md`** (source of truth)
|
|
67
|
+
- Work item tracking details (title, type, priority, dependencies)
|
|
68
|
+
- Spec validation warnings (if specification is incomplete)
|
|
69
|
+
- **Top 10 relevant learnings** scored by keyword matching, type relevance, recency, and category
|
|
70
|
+
- Milestone context and progress (if the work item belongs to a milestone)
|
|
71
|
+
|
|
72
|
+
## Enhanced Briefings (Enhancement #11)
|
|
73
|
+
|
|
74
|
+
For **in-progress work items**, briefings include a "Previous Work" section with:
|
|
75
|
+
- All commits made in previous sessions (full messages, file stats)
|
|
76
|
+
- Quality gate results from each session
|
|
77
|
+
- Session dates and durations
|
|
78
|
+
- This makes multi-session work practical by eliminating context loss
|
|
79
|
+
|
|
80
|
+
**Learning relevance** uses multi-factor scoring:
|
|
81
|
+
- Keyword matching from work item title and spec
|
|
82
|
+
- Work item type matching
|
|
83
|
+
- Tag overlap (legacy support)
|
|
84
|
+
- Category bonuses (best_practices, patterns, architecture)
|
|
85
|
+
- Recency weighting (recent learnings score higher)
|
|
86
|
+
- Returns top 10 most relevant learnings (up from 5)
|
|
87
|
+
|
|
88
|
+
## Spec-First Architecture (Phase 5.7)
|
|
89
|
+
|
|
90
|
+
The spec file (`.session/specs/{work_item_id}.md`) is the **single source of truth** for work item content:
|
|
91
|
+
- Contains complete implementation details, acceptance criteria, and testing strategy
|
|
92
|
+
- Passed in full to Claude during session briefings (no compression)
|
|
93
|
+
- Validated for completeness before session starts
|
|
94
|
+
- If spec validation warnings appear, review and complete the spec before proceeding
|
|
95
|
+
|
|
96
|
+
After generating the briefing:
|
|
97
|
+
1. Display the complete briefing to the user
|
|
98
|
+
2. Update the work item status to "in_progress" using the work item manager
|
|
99
|
+
3. Begin implementation immediately following the guidelines below
|
|
100
|
+
|
|
101
|
+
## Implementation Guidelines
|
|
102
|
+
|
|
103
|
+
When implementing the work item, you MUST:
|
|
104
|
+
|
|
105
|
+
1. **Follow the spec strictly** - The work item specification in the briefing is your complete implementation guide
|
|
106
|
+
2. **Do not add features** - Only implement what is explicitly specified in the acceptance criteria
|
|
107
|
+
3. **Do not make assumptions** - If anything is unclear or ambiguous, ask the user for clarification before proceeding
|
|
108
|
+
4. **Check all requirements** - Ensure every acceptance criterion is met before considering the work complete
|
|
109
|
+
5. **Respect validation criteria** - Follow testing, documentation, and quality requirements specified in the spec
|
|
110
|
+
6. **Stay focused** - Do not deviate from the spec or add "helpful" extras unless explicitly requested
|
|
111
|
+
|
|
112
|
+
The specification defines the exact scope and boundaries of the work. Stay within them.
|
|
113
|
+
|
|
114
|
+
Now begin implementing the work item according to the specification.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Display current session status with progress overview
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Session Status
|
|
6
|
+
|
|
7
|
+
Get a quick overview of the current session by running:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
sk status
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
The status includes:
|
|
14
|
+
- **Current Work Item**: What you're currently working on (title, type, priority)
|
|
15
|
+
- **Time Elapsed**: How long the current session has been running
|
|
16
|
+
- **Files Changed**: Number of files modified during this session
|
|
17
|
+
- **Git Information**: Current branch and recent commits
|
|
18
|
+
- **Milestone Progress**: Progress bar and completion percentage (if applicable)
|
|
19
|
+
- **Next Work Items**: Upcoming tasks ready to start
|
|
20
|
+
- **Quick Actions**: Suggested next steps
|
|
21
|
+
|
|
22
|
+
Display the formatted status output to the user. This provides a quick snapshot of progress without interrupting the workflow.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Validate current session meets quality standards without ending it
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Session Validate
|
|
6
|
+
|
|
7
|
+
Run the validation script to check quality standards:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
sk validate
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
To automatically fix linting and formatting issues:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
sk validate --fix
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
The validation checks:
|
|
20
|
+
- **Tests**: All test suites pass
|
|
21
|
+
- **Linting**: Code passes linting rules (auto-fixable with --fix)
|
|
22
|
+
- **Formatting**: Code is properly formatted (auto-fixable with --fix)
|
|
23
|
+
- **Code Coverage**: Meets minimum coverage threshold
|
|
24
|
+
- **Git Status**: Working directory is clean or has expected changes
|
|
25
|
+
- **Acceptance Criteria**: Work item requirements are met
|
|
26
|
+
|
|
27
|
+
Display the validation results to the user with a clear pass/fail status for each check. If linting or formatting fail, suggest using `sk validate --fix` to automatically fix the issues. This command allows checking quality during development without ending the session.
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Delete a work item from the system
|
|
3
|
+
argument-hint: <work_item_id>
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Work Item Delete
|
|
7
|
+
|
|
8
|
+
Delete a work item from the Solokit system with dependency checking and interactive confirmation.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
/work-delete <work_item_id>
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Instructions
|
|
17
|
+
|
|
18
|
+
1. **Parse the work_item_id** from the command arguments
|
|
19
|
+
|
|
20
|
+
**If missing:**
|
|
21
|
+
- Show error: "Usage: /work-delete <work_item_id>"
|
|
22
|
+
- Exit
|
|
23
|
+
|
|
24
|
+
2. **Load and display work item details** (optimized):
|
|
25
|
+
- Use `python -m solokit.work_items.get_metadata <work_item_id> --with-deps` for fast lookup
|
|
26
|
+
- If work item doesn't exist: Show error and suggest using `/work-list`
|
|
27
|
+
- Display current values:
|
|
28
|
+
```
|
|
29
|
+
Work Item: {work_item_id}
|
|
30
|
+
- Title: {title}
|
|
31
|
+
- Type: {type}
|
|
32
|
+
- Status: {status}
|
|
33
|
+
- Dependencies: {dependencies or "(none)"}
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
3. **Check for dependents** (work items that depend on this one):
|
|
37
|
+
- **Use optimized script**: Run `python -m solokit.work_items.get_dependents <work_item_id>`
|
|
38
|
+
- This script efficiently finds all work items that depend on the given work item
|
|
39
|
+
- If dependents exist, show warning:
|
|
40
|
+
```
|
|
41
|
+
⚠️ WARNING: {count} work item(s) depend on this item:
|
|
42
|
+
- {dependent_id_1} [{type}] {title}
|
|
43
|
+
- {dependent_id_2} [{type}] {title}
|
|
44
|
+
|
|
45
|
+
Deleting this item will NOT update their dependencies.
|
|
46
|
+
You'll need to manually update them after deletion.
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
4. **Ask for confirmation** using `AskUserQuestion`:
|
|
50
|
+
|
|
51
|
+
**Question: Deletion Confirmation**
|
|
52
|
+
- Question: "How would you like to delete '{work_item_id}'?"
|
|
53
|
+
- Header: "Delete"
|
|
54
|
+
- Multi-select: false
|
|
55
|
+
- Options:
|
|
56
|
+
- Label: "Delete work item only (keep spec file)", Description: "Remove from work_items.json but keep .session/specs/{work_item_id}.md for reference"
|
|
57
|
+
- Label: "Delete work item and spec file", Description: "Permanently remove both the work item and its specification file"
|
|
58
|
+
- Label: "Cancel deletion", Description: "Do not delete anything"
|
|
59
|
+
|
|
60
|
+
5. **Execute deletion** based on user selection:
|
|
61
|
+
|
|
62
|
+
**If "Delete work item only" selected:**
|
|
63
|
+
```bash
|
|
64
|
+
sk work-delete <work_item_id> --keep-spec
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**If "Delete work item and spec file" selected:**
|
|
68
|
+
```bash
|
|
69
|
+
sk work-delete <work_item_id> --delete-spec
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
**If "Cancel deletion" selected:**
|
|
73
|
+
- Show message: "Deletion cancelled."
|
|
74
|
+
- Exit without calling command
|
|
75
|
+
|
|
76
|
+
6. **Show the output** to the user:
|
|
77
|
+
- Confirmation of deletion
|
|
78
|
+
- If spec file was deleted, confirm that too
|
|
79
|
+
- If dependents exist, remind user to update them:
|
|
80
|
+
```
|
|
81
|
+
⚠️ Reminder: Update dependencies for these work items:
|
|
82
|
+
/work-update {dependent_1} remove-dependency
|
|
83
|
+
/work-update {dependent_2} remove-dependency
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Examples
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
sk work-delete feature_obsolete_item --keep-spec
|
|
90
|
+
sk work-delete feature_test_item --delete-spec
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Error Handling
|
|
94
|
+
|
|
95
|
+
If the command fails:
|
|
96
|
+
- **Missing work_item_id**: Show usage
|
|
97
|
+
- **Work item doesn't exist**: Show error and list available items
|
|
98
|
+
- **Missing flag**: This should never happen (command file ensures flag is provided)
|
|
99
|
+
|
|
100
|
+
## Important Notes
|
|
101
|
+
|
|
102
|
+
1. **Deletion is permanent** - Work items cannot be recovered after deletion
|
|
103
|
+
2. **Dependents are NOT modified** - If other work items depend on the deleted item, their dependencies are NOT automatically updated. User must manually update them.
|
|
104
|
+
3. **Spec files are optional** - User can choose to keep the spec file for reference
|
|
105
|
+
4. **Manual cleanup required** - After deleting a work item with dependents, remind user to update those dependencies using `/work-update <id> remove-dependency`
|
|
106
|
+
|
|
107
|
+
## Safety Features
|
|
108
|
+
|
|
109
|
+
- **Dependency checking**: Lists work items that depend on the item being deleted
|
|
110
|
+
- **Interactive confirmation**: Requires user confirmation with clear options
|
|
111
|
+
- **Metadata updates**: Automatically updates work item counts and statistics
|
|
112
|
+
- **Validation**: Prevents deletion of non-existent work items
|
|
113
|
+
- **Warnings**: Clear warnings about dependents that need manual updates
|
|
114
|
+
|
|
115
|
+
## Related Commands
|
|
116
|
+
|
|
117
|
+
- `/work-list` - List all work items to find items to delete
|
|
118
|
+
- `/work-show <id>` - View work item details before deleting
|
|
119
|
+
- `/work-update <id> remove-dependency` - Update dependencies after deleting a work item
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Generate dependency graph visualization for work items
|
|
3
|
+
argument-hint: [--format FORMAT] [--status STATUS] [--milestone MILESTONE] [--type TYPE] [--focus ID] [--critical-path] [--bottlenecks] [--stats] [--include-completed] [--output FILE]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Work Item Graph
|
|
7
|
+
|
|
8
|
+
Generate visual dependency graphs showing relationships between work items, with critical path highlighting and bottleneck analysis.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
Ask the user what type of graph they want to generate:
|
|
13
|
+
|
|
14
|
+
1. **Format** - Ask: "What output format would you like?"
|
|
15
|
+
- Options: ascii (default, terminal display), dot (Graphviz), svg (requires Graphviz)
|
|
16
|
+
- Default to ascii if not specified
|
|
17
|
+
|
|
18
|
+
2. **Filters** - Ask: "Any filters to apply? (or 'none' for all work items)"
|
|
19
|
+
- Status: only show items with specific status (not_started, in_progress, completed)
|
|
20
|
+
- Milestone: only show items in specific milestone
|
|
21
|
+
- Type: only show specific work item types
|
|
22
|
+
- Include completed: whether to show completed items (default: no)
|
|
23
|
+
|
|
24
|
+
3. **Special views** - Ask: "Need any special analysis?"
|
|
25
|
+
- critical-path: Show only critical path items
|
|
26
|
+
- bottlenecks: Highlight bottleneck analysis
|
|
27
|
+
- stats: Show graph statistics
|
|
28
|
+
- focus <work_item_id>: Show neighborhood of specific item
|
|
29
|
+
|
|
30
|
+
## After Collecting Information
|
|
31
|
+
|
|
32
|
+
Run the appropriate command based on user input:
|
|
33
|
+
|
|
34
|
+
**Basic usage:**
|
|
35
|
+
```bash
|
|
36
|
+
sk work-graph
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
**With format:**
|
|
40
|
+
```bash
|
|
41
|
+
sk work-graph --format dot
|
|
42
|
+
sk work-graph --format svg --output graph.svg
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
**With filters:**
|
|
46
|
+
```bash
|
|
47
|
+
sk work-graph --status not_started
|
|
48
|
+
sk work-graph --milestone "Phase 3"
|
|
49
|
+
sk work-graph --type feature
|
|
50
|
+
sk work-graph --include-completed
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
**Special views:**
|
|
54
|
+
```bash
|
|
55
|
+
sk work-graph --critical-path
|
|
56
|
+
sk work-graph --bottlenecks
|
|
57
|
+
sk work-graph --stats
|
|
58
|
+
sk work-graph --focus feature_add_authentication
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
**Combined filters:**
|
|
62
|
+
```bash
|
|
63
|
+
sk work-graph --status not_started --milestone "Phase 3" --format svg --output phase3.svg
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Output
|
|
67
|
+
|
|
68
|
+
The command will generate a visual graph showing:
|
|
69
|
+
- Work items as nodes (with ID, title, status)
|
|
70
|
+
- Dependencies as edges (arrows from dependency to dependent)
|
|
71
|
+
- Critical path highlighted in red
|
|
72
|
+
- Color coding by status and priority
|
|
73
|
+
- Bottlenecks identified
|
|
74
|
+
|
|
75
|
+
Display the output to the user and explain key insights:
|
|
76
|
+
- Which items are on critical path (determines project timeline)
|
|
77
|
+
- Which items are bottlenecks (blocking multiple other items)
|
|
78
|
+
- Completion percentage
|
|
79
|
+
- Next recommended items to work on
|
|
80
|
+
|
|
81
|
+
## Examples
|
|
82
|
+
|
|
83
|
+
### Example 1: Basic ASCII Graph
|
|
84
|
+
```bash
|
|
85
|
+
sk work-graph
|
|
86
|
+
```
|
|
87
|
+
Shows all incomplete work items with dependencies in terminal-friendly format.
|
|
88
|
+
|
|
89
|
+
### Example 2: Critical Path Only
|
|
90
|
+
```bash
|
|
91
|
+
sk work-graph --critical-path
|
|
92
|
+
```
|
|
93
|
+
Shows only items on the critical path (longest dependency chain).
|
|
94
|
+
|
|
95
|
+
### Example 3: Bottleneck Analysis
|
|
96
|
+
```bash
|
|
97
|
+
sk work-graph --bottlenecks
|
|
98
|
+
```
|
|
99
|
+
Lists items that block 2+ other items, sorted by impact.
|
|
100
|
+
|
|
101
|
+
### Example 4: Milestone Planning
|
|
102
|
+
```bash
|
|
103
|
+
sk work-graph --milestone "Phase 3" --format svg --output phase3_dependencies.svg
|
|
104
|
+
```
|
|
105
|
+
Generate visual graph of Phase 3 dependencies for documentation.
|
|
106
|
+
|
|
107
|
+
### Example 5: Focus on Specific Item
|
|
108
|
+
```bash
|
|
109
|
+
sk work-graph --focus feature_oauth
|
|
110
|
+
```
|
|
111
|
+
Show only feature_oauth and its dependency neighborhood (dependencies + dependents).
|
|
112
|
+
|
|
113
|
+
### Example 6: Statistics
|
|
114
|
+
```bash
|
|
115
|
+
sk work-graph --stats
|
|
116
|
+
```
|
|
117
|
+
Show completion statistics and critical path length without rendering full graph.
|
|
118
|
+
|
|
119
|
+
## Interpreting the Output
|
|
120
|
+
|
|
121
|
+
**Node Colors:**
|
|
122
|
+
- **Red**: Critical path items (determine project timeline)
|
|
123
|
+
- **Green**: Completed items
|
|
124
|
+
- **Blue**: In progress items
|
|
125
|
+
- **Black/White**: Not started items
|
|
126
|
+
- **Orange**: Blocked items
|
|
127
|
+
|
|
128
|
+
**Arrows:**
|
|
129
|
+
- Point from dependency → dependent
|
|
130
|
+
- Bold red arrows = critical path connections
|
|
131
|
+
|
|
132
|
+
**Bottlenecks:**
|
|
133
|
+
- Items that block 2+ other items
|
|
134
|
+
- Prioritize completing these to unblock downstream work
|
|
135
|
+
|
|
136
|
+
**Critical Path:**
|
|
137
|
+
- Longest chain of dependencies
|
|
138
|
+
- Determines minimum project timeline
|
|
139
|
+
- Focus here to minimize overall project duration
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: List all work items with optional filtering
|
|
3
|
+
argument-hint: [--status STATUS] [--type TYPE] [--milestone MILESTONE]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Work Item List
|
|
7
|
+
|
|
8
|
+
List all work items, optionally filtered by status, type, or milestone.
|
|
9
|
+
|
|
10
|
+
Run the following command:
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
sk work-list "$@"
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
The CLI will automatically parse and handle filters from `$ARGUMENTS`:
|
|
17
|
+
- `--status not_started` → Filters by status
|
|
18
|
+
- `--type feature` → Filters by type
|
|
19
|
+
- `--milestone phase_2_mvp` → Filters by milestone
|
|
20
|
+
|
|
21
|
+
Available filter values:
|
|
22
|
+
- **Status**: `not_started`, `in_progress`, `blocked`, `completed`
|
|
23
|
+
- **Type**: `feature`, `bug`, `refactor`, `security`, `integration_test`, `deployment`
|
|
24
|
+
- **Milestone**: Any milestone name from the project
|
|
25
|
+
|
|
26
|
+
Display the color-coded work item list with priority indicators (🔴 critical, 🟠 high, 🟡 medium, 🟢 low) and dependency status markers (✓ ready, 🚫 blocked).
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Create a new work item interactively
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Work Item Create
|
|
6
|
+
|
|
7
|
+
Create a new work item using rich interactive UI components.
|
|
8
|
+
|
|
9
|
+
## Instructions
|
|
10
|
+
|
|
11
|
+
1. **First, gather basic information** using the `AskUserQuestion` tool with these 3 questions:
|
|
12
|
+
|
|
13
|
+
**Question 1: Work Item Type**
|
|
14
|
+
- Question: "What type of work item would you like to create?"
|
|
15
|
+
- Header: "Type"
|
|
16
|
+
- Multi-select: false
|
|
17
|
+
- Options (limit: 4 options max):
|
|
18
|
+
- Label: "feature", Description: "Standard feature development - New functionality or enhancement"
|
|
19
|
+
- Label: "bug", Description: "Bug fix - Resolve an issue or defect"
|
|
20
|
+
- Label: "refactor", Description: "Code refactoring - Improve code structure without changing behavior"
|
|
21
|
+
- Label: "security", Description: "Security-focused work - Address security vulnerabilities or improvements"
|
|
22
|
+
- Note: User can select "Type something" to manually enter: integration_test or deployment
|
|
23
|
+
|
|
24
|
+
**Question 2: Title**
|
|
25
|
+
- Question: "Enter a brief, descriptive title for the work item:"
|
|
26
|
+
- Header: "Title"
|
|
27
|
+
- Multi-select: false
|
|
28
|
+
- Options: Provide 2-4 example titles based on the type selected in Question 1:
|
|
29
|
+
- If type=feature: "Add authentication system", "Implement search feature"
|
|
30
|
+
- If type=bug: "Fix database connection timeout", "Resolve login error"
|
|
31
|
+
- If type=refactor: "Refactor authentication module", "Simplify error handling"
|
|
32
|
+
- If type=security: "Fix SQL injection vulnerability", "Add input sanitization"
|
|
33
|
+
- Note: User will select "Type something" to enter their custom title
|
|
34
|
+
|
|
35
|
+
**Question 3: Priority**
|
|
36
|
+
- Question: "What is the priority level for this work item?"
|
|
37
|
+
- Header: "Priority"
|
|
38
|
+
- Multi-select: false
|
|
39
|
+
- Options:
|
|
40
|
+
- Label: "critical", Description: "Blocking issue or urgent requirement"
|
|
41
|
+
- Label: "high", Description: "Important work to be done soon (recommended default)"
|
|
42
|
+
- Label: "medium", Description: "Normal priority work"
|
|
43
|
+
- Label: "low", Description: "Nice to have, can be deferred"
|
|
44
|
+
|
|
45
|
+
2. **Then, ask about dependencies** in a separate follow-up question (after you have the title):
|
|
46
|
+
|
|
47
|
+
**Question 4: Dependencies (separate AskUserQuestion call)**
|
|
48
|
+
- Question: "Does this work item depend on other work items? (Select all that apply)"
|
|
49
|
+
- Header: "Dependencies"
|
|
50
|
+
- Multi-select: true
|
|
51
|
+
- Options:
|
|
52
|
+
- **Use optimized script**: Run `python -m solokit.work_items.get_dependencies --title "<title_from_question_2>" --max 3`
|
|
53
|
+
- This script automatically:
|
|
54
|
+
- Excludes completed items (shows only: not_started, in_progress, blocked)
|
|
55
|
+
- Filters by relevance based on the title
|
|
56
|
+
- Returns up to 3 most relevant items
|
|
57
|
+
- Parse the output and create options:
|
|
58
|
+
- Format: Label: "{work_item_id}", Description: "[{priority}] [{type}] {title} ({status})"
|
|
59
|
+
- Always include: Label: "No dependencies", Description: "This work item has no dependencies"
|
|
60
|
+
- If more than 3 relevant items exist, user can select "Type something" to enter comma-separated IDs manually
|
|
61
|
+
- If NO incomplete work items exist (script returns "No available dependencies found"), only show "No dependencies" option
|
|
62
|
+
|
|
63
|
+
2. **Validate inputs:**
|
|
64
|
+
- Ensure type is one of: feature, bug, refactor, security, integration_test, deployment
|
|
65
|
+
- Ensure title is not empty
|
|
66
|
+
- Ensure priority is one of: critical, high, medium, low
|
|
67
|
+
- Dependencies can be empty (no dependencies)
|
|
68
|
+
|
|
69
|
+
3. **Create the work item** by running:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
sk work-new --type <type> --title "<title>" --priority <priority> --dependencies "<dep1,dep2>"
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Example:
|
|
76
|
+
```bash
|
|
77
|
+
sk work-new --type feature --title "Add user authentication" --priority high --dependencies "feature_database_setup,bug_session_timeout"
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
If no dependencies:
|
|
81
|
+
```bash
|
|
82
|
+
sk work-new --type feature --title "Add user authentication" --priority high --dependencies ""
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
4. **Show the output** to the user, which includes:
|
|
86
|
+
- Created work item ID
|
|
87
|
+
- Work item type and priority
|
|
88
|
+
- Status (will be "not_started")
|
|
89
|
+
- Dependencies (if any)
|
|
90
|
+
- Path to the specification file (`.session/specs/{work_item_id}.md`)
|
|
91
|
+
|
|
92
|
+
## Error Handling
|
|
93
|
+
|
|
94
|
+
If the command fails:
|
|
95
|
+
- Check the error message
|
|
96
|
+
- If dependency doesn't exist: Re-prompt with valid dependencies list
|
|
97
|
+
- If work item already exists: Suggest using a different title or updating the existing item
|
|
98
|
+
- If validation error: Re-prompt with corrected information
|
|
99
|
+
|
|
100
|
+
## Next Step: Fill Out the Spec File
|
|
101
|
+
|
|
102
|
+
**IMPORTANT:** After creating the work item, you must fill out the specification file:
|
|
103
|
+
|
|
104
|
+
1. Open `.session/specs/{work_item_id}.md`
|
|
105
|
+
2. Follow the template structure and inline guidance comments
|
|
106
|
+
3. Complete all required sections for the work item type
|
|
107
|
+
4. Remove HTML comment instructions when done
|
|
108
|
+
|
|
109
|
+
The spec file is the **single source of truth** for work item content. All implementation details, acceptance criteria, and testing strategies should be documented in the spec file, not in `work_items.json`.
|
|
110
|
+
|
|
111
|
+
For guidance on writing effective specs, see:
|
|
112
|
+
- `docs/guides/writing-specs.md` - Best practices and examples
|
|
113
|
+
- `docs/reference/spec-template-structure.md` - Template structure reference
|
|
114
|
+
- `src/solokit/templates/{type}_spec.md` - Template examples for each work item type
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Get the next recommended work item to start based on dependencies and priority
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Work Item Next
|
|
6
|
+
|
|
7
|
+
Get an intelligent recommendation for the next work item to start:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
sk work-next
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
The recommendation algorithm analyzes:
|
|
14
|
+
- **Available Work Items**: All items with `not_started` status
|
|
15
|
+
- **Dependency Blocking**: Filters out items blocked by incomplete dependencies
|
|
16
|
+
- **Priority Sorting**: Ranks by priority (critical > high > medium > low)
|
|
17
|
+
- **Smart Selection**: Recommends the highest priority unblocked item
|
|
18
|
+
|
|
19
|
+
Display to the user:
|
|
20
|
+
- **Recommended Work Item**: Full details (ID, title, type, priority)
|
|
21
|
+
- **Selection Rationale**: Why this item was chosen
|
|
22
|
+
- **Dependency Status**: Confirmation that all dependencies are satisfied
|
|
23
|
+
- **Context**: Overview of other waiting items (both blocked and ready)
|
|
24
|
+
|
|
25
|
+
This helps maintain efficient workflow by always suggesting the most important work that can be started immediately.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Show detailed information about a specific work item
|
|
3
|
+
argument-hint: <work_item_id>
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Work Item Show
|
|
7
|
+
|
|
8
|
+
Display detailed information for a specific work item by running:
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
sk work-show "$@"
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
The work item ID is provided in `$ARGUMENTS` and passed through `"$@"`.
|
|
15
|
+
|
|
16
|
+
This displays comprehensive details:
|
|
17
|
+
- **Work Item Info**: Type, status, priority, creation date
|
|
18
|
+
- **Dependencies**: List of dependencies with their current status
|
|
19
|
+
- **Session History**: All sessions where this work item was worked on
|
|
20
|
+
- **Git Information**: Branch name and associated commits
|
|
21
|
+
- **Specification Preview**: First 30 lines of the spec file
|
|
22
|
+
- **Next Steps**: Suggested actions based on current status
|
|
23
|
+
|
|
24
|
+
Show all information to the user in a clear, formatted display. This helps understand the full context of a work item before starting work on it.
|