@event4u/agent-config 1.15.0 → 1.17.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/.agent-src/commands/{agents-audit.md → agents/audit.md} +4 -3
- package/.agent-src/commands/{agents-cleanup.md → agents/cleanup.md} +12 -6
- package/.agent-src/commands/{agents-prepare.md → agents/prepare.md} +4 -3
- package/.agent-src/commands/agents.md +46 -0
- package/.agent-src/commands/bug-fix.md +1 -1
- package/.agent-src/commands/bug-investigate.md +2 -2
- package/.agent-src/commands/{chat-history-checkpoint.md → chat-history/checkpoint.md} +5 -5
- package/.agent-src/commands/{chat-history-clear.md → chat-history/clear.md} +5 -5
- package/.agent-src/commands/{chat-history-resume.md → chat-history/resume.md} +4 -4
- package/.agent-src/commands/chat-history/show.md +107 -0
- package/.agent-src/commands/chat-history.md +33 -89
- package/.agent-src/commands/check-current-md.md +1 -1
- package/.agent-src/commands/{commit-in-chunks.md → commit/in-chunks.md} +15 -13
- package/.agent-src/commands/commit.md +22 -2
- package/.agent-src/commands/{context-create.md → context/create.md} +4 -3
- package/.agent-src/commands/{context-refactor.md → context/refactor.md} +4 -3
- package/.agent-src/commands/context.md +44 -0
- package/.agent-src/commands/{copilot-agents-init.md → copilot-agents/init.md} +4 -3
- package/.agent-src/commands/{copilot-agents-optimize.md → copilot-agents/optimize.md} +4 -3
- package/.agent-src/commands/copilot-agents.md +44 -0
- package/.agent-src/commands/council/default.md +221 -0
- package/.agent-src/commands/council/design.md +97 -0
- package/.agent-src/commands/council/optimize.md +116 -0
- package/.agent-src/commands/council/pr.md +124 -0
- package/.agent-src/commands/council.md +54 -0
- package/.agent-src/commands/{create-pr-description.md → create-pr/description-only.md} +4 -2
- package/.agent-src/commands/create-pr.md +49 -5
- package/.agent-src/commands/e2e-heal.md +1 -1
- package/.agent-src/commands/e2e-plan.md +1 -1
- package/.agent-src/commands/{feature-dev.md → feature/dev.md} +6 -3
- package/.agent-src/commands/{feature-explore.md → feature/explore.md} +5 -4
- package/.agent-src/commands/{feature-plan.md → feature/plan.md} +32 -5
- package/.agent-src/commands/{feature-refactor.md → feature/refactor.md} +4 -3
- package/.agent-src/commands/{feature-roadmap.md → feature/roadmap.md} +7 -6
- package/.agent-src/commands/feature.md +52 -0
- package/.agent-src/commands/{fix-ci.md → fix/ci.md} +4 -3
- package/.agent-src/commands/{fix-portability.md → fix/portability.md} +4 -3
- package/.agent-src/commands/{fix-pr-bot-comments.md → fix/pr-bots.md} +4 -3
- package/.agent-src/commands/{fix-pr-developer-comments.md → fix/pr-developers.md} +4 -3
- package/.agent-src/commands/{fix-pr-comments.md → fix/pr.md} +7 -6
- package/.agent-src/commands/{fix-references.md → fix/refs.md} +4 -3
- package/.agent-src/commands/{fix-seeder.md → fix/seeder.md} +4 -3
- package/.agent-src/commands/fix.md +54 -0
- package/.agent-src/commands/jira-ticket.md +1 -1
- package/.agent-src/commands/{do-and-judge.md → judge/on-diff.md} +7 -6
- package/.agent-src/commands/judge/solo.md +90 -0
- package/.agent-src/commands/{do-in-steps.md → judge/steps.md} +8 -7
- package/.agent-src/commands/judge.md +35 -70
- package/.agent-src/commands/{memory-add.md → memory/add.md} +7 -6
- package/.agent-src/commands/{memory-full.md → memory/load.md} +6 -5
- package/.agent-src/commands/{memory-promote.md → memory/promote.md} +6 -5
- package/.agent-src/commands/{propose-memory.md → memory/propose.md} +6 -5
- package/.agent-src/commands/memory.md +48 -0
- package/.agent-src/commands/mode.md +5 -5
- package/.agent-src/commands/{module-create.md → module/create.md} +4 -3
- package/.agent-src/commands/{module-explore.md → module/explore.md} +4 -3
- package/.agent-src/commands/module.md +44 -0
- package/.agent-src/commands/onboard.md +3 -3
- package/.agent-src/commands/{optimize-agents.md → optimize/agents.md} +5 -4
- package/.agent-src/commands/{optimize-augmentignore.md → optimize/augmentignore.md} +4 -4
- package/.agent-src/commands/{optimize-rtk-filters.md → optimize/rtk.md} +4 -3
- package/.agent-src/commands/{optimize-skills.md → optimize/skills.md} +5 -4
- package/.agent-src/commands/optimize.md +48 -0
- package/.agent-src/commands/{override-create.md → override/create.md} +4 -3
- package/.agent-src/commands/{override-manage.md → override/manage.md} +4 -3
- package/.agent-src/commands/override.md +44 -0
- package/.agent-src/commands/review-changes.md +26 -1
- package/.agent-src/commands/review-routing.md +1 -1
- package/.agent-src/commands/{roadmap-create.md → roadmap/create.md} +33 -5
- package/.agent-src/commands/{roadmap-execute.md → roadmap/execute.md} +4 -3
- package/.agent-src/commands/roadmap.md +44 -0
- package/.agent-src/commands/set-cost-profile.md +3 -3
- package/.agent-src/commands/sync-agent-settings.md +2 -2
- package/.agent-src/commands/{tests-create.md → tests/create.md} +5 -4
- package/.agent-src/commands/{tests-execute.md → tests/execute.md} +4 -3
- package/.agent-src/commands/tests.md +44 -0
- package/.agent-src/commands/upstream-contribute.md +1 -1
- package/.agent-src/contexts/authority/commit-mechanics.md +57 -0
- package/.agent-src/contexts/authority/destructive-mechanics.md +66 -0
- package/.agent-src/contexts/authority/scope-mechanics.md +87 -0
- package/.agent-src/contexts/communication/rules-auto/artifact-engagement-recording-mechanics.md +72 -0
- package/.agent-src/contexts/communication/rules-auto/augment-portability-mechanics.md +79 -0
- package/.agent-src/contexts/communication/rules-auto/augment-source-of-truth-mechanics.md +98 -0
- package/.agent-src/contexts/communication/rules-auto/cli-output-handling-mechanics.md +87 -0
- package/.agent-src/contexts/communication/rules-auto/command-suggestion-policy-mechanics.md +62 -0
- package/.agent-src/contexts/communication/rules-auto/docs-sync-mechanics.md +78 -0
- package/.agent-src/contexts/communication/rules-auto/package-ci-checks-mechanics.md +85 -0
- package/.agent-src/contexts/communication/rules-auto/review-routing-awareness-mechanics.md +65 -0
- package/.agent-src/contexts/communication/rules-auto/roadmap-progress-sync-mechanics.md +78 -0
- package/.agent-src/contexts/communication/rules-auto/skill-quality-mechanics.md +62 -0
- package/.agent-src/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md +55 -0
- package/.agent-src/contexts/communication/rules-auto/ui-audit-gate-mechanics.md +53 -0
- package/.agent-src/contexts/communication/rules-auto/user-interaction-mechanics.md +77 -0
- package/.agent-src/contexts/execution/autonomy-detection.md +54 -0
- package/.agent-src/contexts/execution/autonomy-examples.md +90 -0
- package/.agent-src/contexts/execution/autonomy-mechanics.md +29 -0
- package/.agent-src/contexts/execution/verification-mechanics.md +80 -0
- package/.agent-src/contexts/judges/no-consolidate-rationale.md +102 -0
- package/.agent-src/contexts/judges/persona-voice-rubric.md +140 -0
- package/.agent-src/personas/README.md +1 -1
- package/.agent-src/rules/agent-authority.md +24 -0
- package/.agent-src/rules/architecture.md +1 -1
- package/.agent-src/rules/artifact-drafting-protocol.md +1 -1
- package/.agent-src/rules/artifact-engagement-recording.md +14 -70
- package/.agent-src/rules/ask-when-uncertain.md +28 -43
- package/.agent-src/rules/augment-portability.md +15 -61
- package/.agent-src/rules/augment-source-of-truth.md +27 -93
- package/.agent-src/rules/autonomous-execution.md +78 -114
- package/.agent-src/rules/capture-learnings.md +1 -1
- package/.agent-src/rules/chat-history-cadence.md +3 -3
- package/.agent-src/rules/chat-history-ownership.md +3 -3
- package/.agent-src/rules/chat-history-visibility.md +3 -3
- package/.agent-src/rules/cli-output-handling.md +10 -76
- package/.agent-src/rules/command-suggestion-policy.md +93 -0
- package/.agent-src/rules/commit-conventions.md +17 -14
- package/.agent-src/rules/commit-policy.md +14 -42
- package/.agent-src/rules/context-hygiene.md +3 -3
- package/.agent-src/rules/direct-answers.md +34 -49
- package/.agent-src/rules/docker-commands.md +5 -5
- package/.agent-src/rules/docs-sync.md +16 -70
- package/.agent-src/rules/e2e-testing.md +1 -1
- package/.agent-src/rules/guidelines.md +4 -4
- package/.agent-src/rules/improve-before-implement.md +2 -2
- package/.agent-src/rules/language-and-tone.md +50 -133
- package/.agent-src/rules/minimal-safe-diff.md +3 -3
- package/.agent-src/rules/missing-tool-handling.md +28 -22
- package/.agent-src/rules/model-recommendation.md +4 -4
- package/.agent-src/rules/no-cheap-questions.md +82 -0
- package/.agent-src/rules/no-roadmap-references.md +73 -0
- package/.agent-src/rules/non-destructive-by-default.md +15 -49
- package/.agent-src/rules/onboarding-gate.md +5 -5
- package/.agent-src/rules/package-ci-checks.md +21 -61
- package/.agent-src/rules/preservation-guard.md +64 -29
- package/.agent-src/rules/review-routing-awareness.md +26 -45
- package/.agent-src/rules/roadmap-progress-sync.md +28 -96
- package/.agent-src/rules/role-mode-adherence.md +2 -2
- package/.agent-src/rules/scope-control.md +65 -46
- package/.agent-src/rules/security-sensitive-stop.md +9 -9
- package/.agent-src/rules/size-enforcement.md +1 -1
- package/.agent-src/rules/skill-quality.md +16 -48
- package/.agent-src/rules/{slash-commands.md → slash-command-routing-policy.md} +7 -4
- package/.agent-src/rules/think-before-action.md +55 -45
- package/.agent-src/rules/token-efficiency.md +4 -4
- package/.agent-src/rules/tool-safety.md +19 -16
- package/.agent-src/rules/{ui-audit-before-build.md → ui-audit-gate.md} +27 -41
- package/.agent-src/rules/user-interaction.md +16 -71
- package/.agent-src/rules/verify-before-complete.md +12 -67
- package/.agent-src/scripts/update_roadmap_progress.py +9 -4
- package/.agent-src/skills/ai-council/SKILL.md +335 -0
- package/.agent-src/skills/api-endpoint/SKILL.md +2 -2
- package/.agent-src/skills/api-testing/SKILL.md +1 -1
- package/.agent-src/skills/blade-ui/SKILL.md +1 -1
- package/.agent-src/skills/blast-radius-analyzer/SKILL.md +1 -1
- package/.agent-src/skills/bug-analyzer/SKILL.md +1 -1
- package/.agent-src/skills/check-refs/SKILL.md +59 -40
- package/.agent-src/skills/command-routing/SKILL.md +1 -1
- package/.agent-src/skills/command-writing/SKILL.md +1 -1
- package/.agent-src/skills/conventional-commits-writing/SKILL.md +86 -28
- package/.agent-src/skills/copilot-agents-optimization/SKILL.md +7 -7
- package/.agent-src/skills/developer-like-execution/SKILL.md +6 -6
- package/.agent-src/skills/finishing-a-development-branch/SKILL.md +101 -65
- package/.agent-src/skills/flux/SKILL.md +31 -11
- package/.agent-src/skills/git-workflow/SKILL.md +1 -1
- package/.agent-src/skills/github-ci/SKILL.md +2 -2
- package/.agent-src/skills/guideline-writing/SKILL.md +11 -11
- package/.agent-src/skills/judge-code-quality/SKILL.md +7 -8
- package/.agent-src/skills/judge-security-auditor/SKILL.md +4 -5
- package/.agent-src/skills/judge-test-coverage/SKILL.md +3 -4
- package/.agent-src/skills/learning-to-rule-or-skill/SKILL.md +4 -4
- package/.agent-src/skills/lint-skills/SKILL.md +57 -39
- package/.agent-src/skills/livewire/SKILL.md +1 -1
- package/.agent-src/skills/md-language-check/SKILL.md +61 -39
- package/.agent-src/skills/override-management/SKILL.md +7 -7
- package/.agent-src/skills/php-coder/SKILL.md +1 -1
- package/.agent-src/skills/playwright-testing/SKILL.md +2 -2
- package/.agent-src/skills/quality-tools/SKILL.md +2 -2
- package/.agent-src/skills/react-shadcn-ui/SKILL.md +116 -43
- package/.agent-src/skills/readme-reviewer/SKILL.md +31 -30
- package/.agent-src/skills/readme-writing/SKILL.md +79 -54
- package/.agent-src/skills/readme-writing-package/SKILL.md +51 -48
- package/.agent-src/skills/receiving-code-review/SKILL.md +53 -48
- package/.agent-src/skills/refine-prompt/SKILL.md +0 -1
- package/.agent-src/skills/requesting-code-review/SKILL.md +35 -30
- package/.agent-src/skills/review-routing/SKILL.md +2 -2
- package/.agent-src/skills/rule-writing/SKILL.md +1 -1
- package/.agent-src/skills/security/SKILL.md +7 -2
- package/.agent-src/skills/security-audit/SKILL.md +7 -3
- package/.agent-src/skills/skill-reviewer/SKILL.md +1 -1
- package/.agent-src/skills/skill-writing/SKILL.md +3 -3
- package/.agent-src/skills/subagent-orchestration/SKILL.md +1 -0
- package/.agent-src/skills/systematic-debugging/SKILL.md +69 -61
- package/.agent-src/skills/test-driven-development/SKILL.md +59 -57
- package/.agent-src/skills/test-performance/SKILL.md +0 -1
- package/.agent-src/skills/traefik/SKILL.md +4 -4
- package/.agent-src/skills/upstream-contribute/SKILL.md +1 -1
- package/.agent-src/skills/validate-feature-fit/SKILL.md +2 -2
- package/.agent-src/skills/{verify-before-complete → verify-completion-evidence}/SKILL.md +30 -28
- package/.agent-src/templates/agent-settings.md +8 -8
- package/.agent-src/templates/contexts/auth-model.md +1 -1
- package/.agent-src/templates/scripts/README.md +2 -2
- package/.agent-src/templates/scripts/telemetry/aggregator.py +16 -1
- package/.agent-src/templates/scripts/telemetry/engagement.py +59 -0
- package/.agent-src/templates/scripts/telemetry/report_renderer.py +28 -1
- package/.agent-src/templates/scripts/telemetry_record.py +14 -1
- package/.claude-plugin/marketplace.json +31 -12
- package/AGENTS.md +11 -9
- package/CHANGELOG.md +213 -2
- package/README.md +43 -44
- package/config/agent-settings.template.yml +58 -1
- package/config/gitignore-block.txt +3 -0
- package/docs/architecture.md +5 -7
- package/docs/catalog.md +359 -0
- package/docs/contracts/STABILITY.md +46 -1
- package/docs/contracts/adr-chat-history-split.md +1 -3
- package/docs/contracts/adr-command-suggestion.md +3 -5
- package/docs/contracts/adr-implement-ticket-runtime.md +1 -2
- package/docs/contracts/adr-product-ui-track.md +5 -8
- package/docs/contracts/adr-prompt-driven-execution.md +3 -4
- package/docs/contracts/agent-memory-contract.md +8 -13
- package/docs/contracts/artifact-engagement-flow.md +7 -10
- package/docs/contracts/command-clusters.md +56 -46
- package/docs/contracts/command-suggestion-flow.md +4 -6
- package/docs/contracts/context-paths.md +99 -0
- package/docs/contracts/file-ownership-matrix.json +6722 -0
- package/docs/contracts/file-ownership-matrix.md +134 -0
- package/docs/contracts/implement-ticket-flow.md +8 -11
- package/docs/contracts/linear-ai-rules-inclusion.md +1 -2
- package/docs/contracts/linear-ai-three-layers.md +0 -2
- package/docs/contracts/load-context-budget-model.md +178 -0
- package/docs/contracts/load-context-schema.md +184 -0
- package/docs/contracts/rule-interactions.md +0 -1
- package/docs/contracts/rule-interactions.yml +96 -0
- package/docs/contracts/rule-priority-hierarchy.md +87 -0
- package/docs/contracts/ui-track-flow.md +8 -18
- package/docs/customization.md +16 -0
- package/docs/end-to-end-walkthroughs.md +165 -0
- package/docs/getting-started.md +29 -10
- package/docs/github-topics.md +12 -3
- package/docs/guidelines/agent-infra/asking-and-brevity-examples.md +100 -0
- package/docs/guidelines/agent-infra/language-and-tone-examples.md +79 -0
- package/{.agent-src → docs}/guidelines/docs/readme-size-and-splitting.md +26 -25
- package/docs/guidelines/php/git.md +164 -0
- package/docs/migrations/commands-1.15.0.md +1 -1
- package/docs/showcase.md +9 -4
- package/docs/skills-catalog.md +14 -8
- package/docs/ui-track-mental-model.md +2 -2
- package/llms.txt +13 -7
- package/package.json +1 -1
- package/scripts/_one_off_phase4_dispatch_latency.py +108 -0
- package/scripts/_one_off_phase6_trigger_jaccard.py +92 -0
- package/scripts/_phase2_shim_helper.py +109 -0
- package/scripts/agent-config +33 -0
- package/scripts/ai_council/__init__.py +39 -0
- package/scripts/ai_council/_default_prices.py +41 -0
- package/scripts/ai_council/_one_off_2a4_acceptance.py +208 -0
- package/scripts/ai_council/_one_off_context_layer_v1_estimate.py +67 -0
- package/scripts/ai_council/_one_off_context_layer_v1_review.py +292 -0
- package/scripts/ai_council/_one_off_followups_review.py +259 -0
- package/scripts/ai_council/_one_off_nondestructive_inline_audit.py +209 -0
- package/scripts/ai_council/_one_off_phase_2a_budget_rebalance.py +257 -0
- package/scripts/ai_council/_one_off_phase_2a_post_revert.py +197 -0
- package/scripts/ai_council/_one_off_rebalancing_audit.py +149 -0
- package/scripts/ai_council/_one_off_roundtrip.py +106 -0
- package/scripts/ai_council/_one_off_rule_hardening_v1.py +251 -0
- package/scripts/ai_council/_one_off_structural_open_questions.py +232 -0
- package/scripts/ai_council/_one_off_structural_optimization.py +144 -0
- package/scripts/ai_council/_one_off_structural_v3_gaps.py +252 -0
- package/scripts/ai_council/_one_off_structural_v3_review.py +240 -0
- package/scripts/ai_council/budget_guard.py +172 -0
- package/scripts/ai_council/bundler.py +261 -0
- package/scripts/ai_council/clients.py +381 -0
- package/scripts/ai_council/modes.py +127 -0
- package/scripts/ai_council/orchestrator.py +350 -0
- package/scripts/ai_council/pricing.py +213 -0
- package/scripts/ai_council/project_context.py +159 -0
- package/scripts/ai_council/prompts.py +232 -0
- package/scripts/ai_council/session.py +144 -0
- package/scripts/check_always_budget.py +444 -0
- package/scripts/check_augmentignore.py +69 -0
- package/scripts/check_cluster_patterns.py +159 -0
- package/scripts/check_command_count_messaging.py +127 -0
- package/scripts/check_context_paths.py +201 -0
- package/scripts/check_no_roadmap_refs.py +155 -0
- package/scripts/check_phase_coupling.py +148 -0
- package/scripts/check_portability.py +57 -0
- package/scripts/check_public_catalog_links.py +122 -0
- package/scripts/check_references.py +33 -3
- package/scripts/check_roadmap_trackable.py +111 -0
- package/scripts/check_safety_floor_untouched.py +125 -0
- package/scripts/command_suggester/cooldown.py +1 -1
- package/scripts/command_suggester/loader.py +4 -1
- package/scripts/compress.py +59 -13
- package/scripts/generate_index.py +270 -0
- package/scripts/generate_ownership_matrix.py +323 -0
- package/scripts/hooks/augment-roadmap-progress.sh +57 -0
- package/scripts/install.py +49 -28
- package/scripts/install_anthropic_key.sh +5 -0
- package/scripts/install_openai_key.sh +106 -0
- package/scripts/lint_load_context.py +163 -0
- package/scripts/lint_no_new_atomic_commands.py +12 -11
- package/scripts/requirements-evals.txt +1 -0
- package/scripts/roadmap_progress_hook.py +159 -0
- package/scripts/schemas/command.schema.json +22 -1
- package/scripts/schemas/rule.schema.json +10 -0
- package/scripts/skill_linter.py +13 -4
- package/scripts/sync_agent_settings.py +26 -3
- package/scripts/update_counts.py +16 -4
- package/scripts/update_prices.py +124 -0
- package/.agent-src/guidelines/php/git.md +0 -96
- package/.agent-src/rules/command-suggestion.md +0 -134
- /package/{.agent-src → docs}/guidelines/agent-infra/agent-interaction-and-decision-quality.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/break-glass-usage.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/developer-judgment.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/engineering-memory-data-format.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/layered-settings.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/memory-access.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/naming.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/output-patterns.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/review-routing-data-format.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/role-contracts.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/role-mode-router.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/runtime-layer.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/self-improvement-pipeline.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/size-and-scope.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/tool-integration.md +0 -0
- /package/{.agent-src → docs}/guidelines/e2e/playwright.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/api-design.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/artisan-commands.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/blade-ui.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/controllers.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/database.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/eloquent.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/flux.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/general.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/jobs.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/livewire.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/logging.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/naming.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns/dependency-injection.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns/dtos.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns/events.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns/factory.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns/pipelines.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns/policies.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns/repositories.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns/service-layer.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns/strategy.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/performance.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/resources.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/security.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/sql.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/validations.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/websocket.md +0 -0
|
@@ -52,8 +52,8 @@ Use the **first matching** command style:
|
|
|
52
52
|
| `symplify/easy-coding-standard` | `vendor/bin/ecs` | `vendor/bin/ecs check --fix` |
|
|
53
53
|
|
|
54
54
|
**Priority:** If a project ships a `quality:*` wrapper (Artisan or Composer script), always prefer it —
|
|
55
|
-
wrappers typically add
|
|
56
|
-
|
|
55
|
+
wrappers typically add git-aware execution, caching, automatic baseline regeneration, and memory
|
|
56
|
+
management on top of the native tools.
|
|
57
57
|
|
|
58
58
|
If none of the above is installed → skip quality checks, inform the user.
|
|
59
59
|
|
|
@@ -9,35 +9,59 @@ source: package
|
|
|
9
9
|
## Compatibility
|
|
10
10
|
|
|
11
11
|
- **Tested against:** `shadcn@2.1`, Tailwind CSS `3.x`, React `18+`.
|
|
12
|
-
-
|
|
12
|
+
- The audit step (`directives/ui/audit.py`) reads the line above and
|
|
13
|
+
compares it with `state.ui_audit.shadcn_inventory.version`; a major
|
|
14
|
+
mismatch triggers a soft halt before this skill runs.
|
|
13
15
|
|
|
14
16
|
## When to use
|
|
15
17
|
|
|
16
|
-
Use when `state.stack.frontend == "react-shadcn"` and `directives/ui/apply.py`,
|
|
18
|
+
Use when `state.stack.frontend == "react-shadcn"` and `directives/ui/apply.py`,
|
|
19
|
+
`review.py`, or `polish.py` dispatches to this skill, or when a React project
|
|
20
|
+
clearly uses shadcn/ui (presence of `components.json`, `@radix-ui/*`
|
|
21
|
+
dependencies, a `components/ui/` folder of generated primitives).
|
|
17
22
|
|
|
18
23
|
Do NOT use when:
|
|
19
|
-
|
|
20
24
|
- Project is Blade + Livewire + Flux (use `flux` / `livewire` / `blade-ui`).
|
|
21
25
|
- Project is Vue (use the Vue stack skills).
|
|
22
|
-
- Plain React without shadcn/ui — fall back to manual composition; this skill
|
|
26
|
+
- Plain React without shadcn/ui — fall back to manual composition; this skill
|
|
27
|
+
assumes the primitive set exists.
|
|
23
28
|
|
|
24
29
|
## Gotcha
|
|
25
30
|
|
|
26
|
-
- shadcn/ui is **not** an npm package. Primitives are copied into
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
-
|
|
30
|
-
|
|
31
|
-
|
|
31
|
+
- shadcn/ui is **not** an npm package. Primitives are copied into
|
|
32
|
+
`components/ui/` and edited in-place. Do not `npm install shadcn-ui`.
|
|
33
|
+
Run `npx shadcn@latest add <primitive>` to scaffold; then edit.
|
|
34
|
+
- Major-version drift between this skill's `## Compatibility` line and
|
|
35
|
+
the project's installed primitives is a real risk. The audit step
|
|
36
|
+
writes `state.ui_audit.shadcn_inventory` with the detected version —
|
|
37
|
+
when it diverges by a major, audit emits a soft halt before this
|
|
38
|
+
skill runs.
|
|
39
|
+
- shadcn/ui composes Radix primitives. Accessibility is built in via Radix
|
|
40
|
+
but only when you use the wrapper components correctly (`asChild`,
|
|
41
|
+
`<DialogTrigger>` instead of a bare `<button>`).
|
|
42
|
+
- Tailwind tokens come from `tailwind.config.{js,ts}` (`theme.extend.colors`)
|
|
43
|
+
and CSS custom properties on `:root` and `.dark` (`--background`,
|
|
44
|
+
`--foreground`, `--primary`, `--ring`, …). Audit writes them into
|
|
45
|
+
`state.ui_audit.design_tokens`. Use those tokens; do not hardcode values.
|
|
46
|
+
- Dark mode is class-based (`<html class="dark">`). Every color must come
|
|
47
|
+
from `bg-background`, `text-foreground`, etc. — never raw `bg-white`.
|
|
48
|
+
- Every interactive primitive must declare a focus-visible state via
|
|
49
|
+
`focus-visible:ring-2 focus-visible:ring-ring`; that comes for free with
|
|
50
|
+
the generated primitives but is easy to remove during a refactor.
|
|
32
51
|
|
|
33
52
|
## Covered primitives
|
|
34
53
|
|
|
35
|
-
|
|
54
|
+
This skill is validated against the following shadcn primitives at the
|
|
55
|
+
declared version:
|
|
36
56
|
|
|
37
|
-
- **Form / inputs:** `Button`, `Input`, `Textarea`, `Checkbox`,
|
|
38
|
-
|
|
57
|
+
- **Form / inputs:** `Button`, `Input`, `Textarea`, `Checkbox`,
|
|
58
|
+
`RadioGroup`, `Select`, `Switch`, `Label`, `Form` (react-hook-form
|
|
59
|
+
wrapper + `zodResolver`).
|
|
60
|
+
- **Overlay:** `Dialog`, `Sheet`, `Popover`, `Tooltip`, `DropdownMenu`,
|
|
61
|
+
`AlertDialog`.
|
|
39
62
|
- **Layout:** `Card`, `Separator`, `Tabs`, `Accordion`, `ScrollArea`.
|
|
40
|
-
- **Data display:** `Table` (with `@tanstack/react-table`), `Badge`,
|
|
63
|
+
- **Data display:** `Table` (with `@tanstack/react-table`), `Badge`,
|
|
64
|
+
`Avatar`, `Skeleton`, `Progress`.
|
|
41
65
|
- **Feedback:** `Toast` (sonner), `Alert`.
|
|
42
66
|
|
|
43
67
|
## Not covered — fall back to manual composition
|
|
@@ -45,63 +69,110 @@ Validated against the following shadcn primitives at the declared version:
|
|
|
45
69
|
- Marketing-only components (Hero, Pricing, Features) — outside shadcn/ui.
|
|
46
70
|
- `Calendar` / `DatePicker` — composition skill required, not generated.
|
|
47
71
|
- `Combobox` — built from `Command` + `Popover`; case-by-case.
|
|
48
|
-
- Streaming / partial-prerender boundaries — use the project's framework
|
|
72
|
+
- Streaming / partial-prerender boundaries — use the project's framework
|
|
73
|
+
patterns (Next.js / Remix), not shadcn/ui.
|
|
49
74
|
|
|
50
75
|
## Procedure: render a shadcn/ui component for the design brief
|
|
51
76
|
|
|
52
77
|
### Step 0: Inspect
|
|
53
78
|
|
|
54
|
-
1. Read `state.ui_audit.shadcn_inventory.version` and confirm it matches
|
|
55
|
-
|
|
79
|
+
1. Read `state.ui_audit.shadcn_inventory.version` and confirm it matches
|
|
80
|
+
the version in `## Compatibility` within the same major. If audit
|
|
81
|
+
flagged a mismatch, the user already chose to proceed — note that
|
|
82
|
+
in `state.changes`.
|
|
83
|
+
2. Read `state.ui_audit.design_tokens` — every color, spacing, and radius
|
|
84
|
+
in the rendered output must reference a token from this map.
|
|
56
85
|
3. Read `state.ui_design`:
|
|
57
86
|
- `components` → the primitive list to compose.
|
|
58
|
-
- `microcopy` → button labels, empty-state text, validation messages.
|
|
87
|
+
- `microcopy` → button labels, empty-state text, validation messages.
|
|
88
|
+
**Lock — render verbatim.**
|
|
59
89
|
- `states` → empty / loading / error / success / disabled coverage.
|
|
60
90
|
- `a11y` → ARIA labels, keyboard nav, focus order.
|
|
61
91
|
|
|
62
92
|
### Step 1: Compose primitives
|
|
63
93
|
|
|
64
|
-
1. Import primitives from project's `components/ui/` path
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
94
|
+
1. Import primitives from the project's `components/ui/` path
|
|
95
|
+
(`@/components/ui/button`, …) — never from `shadcn` or `radix-ui`.
|
|
96
|
+
2. Compose Radix-style: `<Dialog>` → `<DialogTrigger asChild>` →
|
|
97
|
+
`<DialogContent>` → `<DialogHeader>` → `<DialogTitle>`. Never wrap
|
|
98
|
+
`DialogTrigger` around a pre-styled `<button>`; pass `asChild`.
|
|
99
|
+
3. Use the variant API of `Button` (`variant="default" | "destructive" |
|
|
100
|
+
"outline" | "secondary" | "ghost" | "link"`); do not override with
|
|
101
|
+
raw Tailwind for the variant set.
|
|
102
|
+
4. Forms: `useForm` (react-hook-form) + `zodResolver(schema)` →
|
|
103
|
+
`<Form>` → `<FormField>` → `<FormItem>` → `<FormLabel>` →
|
|
104
|
+
`<FormControl>` → `<FormMessage>`. Validation messages come from
|
|
105
|
+
the zod schema, mirrored to the design-brief microcopy.
|
|
68
106
|
|
|
69
107
|
### Step 2: Apply tokens, dark mode, a11y
|
|
70
108
|
|
|
71
|
-
1. Colors via semantic classes: `bg-background`, `text-foreground`,
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
109
|
+
1. Colors via semantic classes: `bg-background`, `text-foreground`,
|
|
110
|
+
`bg-primary text-primary-foreground`, `text-muted-foreground`. No
|
|
111
|
+
`bg-white` / `text-black` / hardcoded `#fff`.
|
|
112
|
+
2. Spacing / radius from theme tokens (`rounded-lg` mapped to `--radius`
|
|
113
|
+
in `tailwind.config.{js,ts}`). Polish refactors hardcoded values
|
|
114
|
+
when a token equivalent exists.
|
|
115
|
+
3. Dark mode: never branch on a `dark` prop; rely on the `.dark` class
|
|
116
|
+
on the root and semantic tokens.
|
|
117
|
+
4. Every interactive primitive: keyboard trigger present (Enter/Space
|
|
118
|
+
on buttons, Esc on dialogs — Radix free), visible focus ring,
|
|
119
|
+
`aria-label` from `state.ui_design.a11y` when icon-only.
|
|
75
120
|
|
|
76
121
|
### Step 3: State coverage
|
|
77
122
|
|
|
78
|
-
1. Empty: render design-brief empty-state copy in a `Card` or
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
123
|
+
1. Empty: render the design-brief empty-state copy in a `Card` or
|
|
124
|
+
inline placeholder; never `null`.
|
|
125
|
+
2. Loading: `Skeleton` rows for tables; `Button` `disabled` +
|
|
126
|
+
`Loader2` icon for submit-in-flight.
|
|
127
|
+
3. Error: `Alert variant="destructive"` with the design-brief message;
|
|
128
|
+
`FormMessage` for field-level errors.
|
|
129
|
+
4. Success: `toast.success(...)` from `sonner` with the design-brief
|
|
130
|
+
confirmation copy.
|
|
131
|
+
5. Disabled: `disabled` prop on the trigger plus the design-brief
|
|
132
|
+
reason as `aria-describedby` text.
|
|
83
133
|
|
|
84
134
|
### Step 4: Validate
|
|
85
135
|
|
|
86
136
|
1. No raw `<input>` / `<button>` / `<select>` outside the primitive set.
|
|
87
137
|
2. No hardcoded colors / spacing — every value is a token.
|
|
88
138
|
3. Microcopy matches `state.ui_design.microcopy` byte-for-byte.
|
|
89
|
-
4. Dark mode: toggle `.dark` on `<html>`, render the component, every
|
|
139
|
+
4. Dark mode: toggle `.dark` on `<html>`, render the component, every
|
|
140
|
+
surface still legible (no `text-white on bg-white`).
|
|
90
141
|
5. Keyboard: Tab through every focusable element; focus ring visible.
|
|
91
142
|
|
|
92
143
|
## Output format
|
|
93
144
|
|
|
94
|
-
1. React component file(s) under project's `components/` (or `app/`)
|
|
95
|
-
|
|
145
|
+
1. React component file(s) under the project's `components/` (or `app/`)
|
|
146
|
+
tree, importing primitives from `@/components/ui/*`.
|
|
147
|
+
2. Per file, one entry recorded in `state.changes` with `kind="ui"`,
|
|
148
|
+
`stack="react-shadcn"`, and the design-brief summary.
|
|
96
149
|
|
|
97
150
|
### Review pass — a11y findings + preview envelope
|
|
98
151
|
|
|
99
|
-
When dispatched by `directives/ui/review.py` (test slot)
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
152
|
+
When this skill is dispatched by `directives/ui/review.py` (test slot)
|
|
153
|
+
or `directives/ui/polish.py` (verify slot) — i.e. a review/polish run,
|
|
154
|
+
not the initial apply — it also emits:
|
|
155
|
+
|
|
156
|
+
- `state.ui_review.a11y` — `{violations: [{rule, selector, severity}, ...],
|
|
157
|
+
severity_floor?, accepted_violations?}`. Run an a11y tool against the
|
|
158
|
+
rendered output (e.g. `axe-core` via Playwright, `@axe-core/react`,
|
|
159
|
+
`jest-axe`) and translate hits into this shape. Use the same
|
|
160
|
+
`(rule, selector)` shape as `state.ui_audit.a11y_baseline` so the
|
|
161
|
+
engine's de-dup matches pre-existing entries on replay. Omit the
|
|
162
|
+
envelope on apply passes; the engine's `_apply_a11y_gate` only fires
|
|
163
|
+
when a baseline is present.
|
|
164
|
+
- `state.ui_review.preview` — `{render_ok: bool, screenshot_path?,
|
|
165
|
+
dom_dump_path?, error?, skipped?}`. `render_ok: false` with `error`
|
|
166
|
+
populated triggers the `preview_render_failed` halt; `render_ok: true`
|
|
167
|
+
with `screenshot_path` threads the screenshot into the delivery
|
|
168
|
+
report's `artifacts` list. Browser tooling (Playwright/Cypress/…) is
|
|
169
|
+
a consumer-project dependency — this package does not ship one.
|
|
170
|
+
|
|
171
|
+
Polish dispatch: when the dispatcher skips `review` because a previous
|
|
172
|
+
review pass already returned `SUCCESS`, this skill MUST itself
|
|
173
|
+
synthesise the updated `state.ui_review.findings` (including any
|
|
174
|
+
remaining `a11y_violation` entries) so the engine's gate sees the
|
|
175
|
+
current state on the next polish round.
|
|
105
176
|
|
|
106
177
|
## Do NOT
|
|
107
178
|
|
|
@@ -109,13 +180,15 @@ Polish dispatch: when dispatcher skips `review` because previous review pass ret
|
|
|
109
180
|
- Do NOT hardcode colors / spacing / radii — use the token map.
|
|
110
181
|
- Do NOT branch on a `dark` prop — use semantic tokens + the `.dark` class.
|
|
111
182
|
- Do NOT rewrite microcopy — it is locked by `state.ui_design`.
|
|
112
|
-
- Do NOT skip `asChild` on `DialogTrigger` / `SheetTrigger` / similar
|
|
113
|
-
|
|
183
|
+
- Do NOT skip `asChild` on `DialogTrigger` / `SheetTrigger` / similar
|
|
184
|
+
Radix wrappers — it breaks the accessibility contract.
|
|
185
|
+
- Do NOT introduce a non-shadcn UI library (MUI, Chakra) into the same
|
|
186
|
+
surface — pick one system per surface.
|
|
114
187
|
|
|
115
188
|
## Auto-trigger keywords
|
|
116
189
|
|
|
117
190
|
- shadcn / shadcn ui / shadcn/ui
|
|
118
|
-
- React component (when project uses shadcn)
|
|
191
|
+
- React component (when the project uses shadcn)
|
|
119
192
|
- Radix primitive
|
|
120
193
|
- Tailwind dark mode
|
|
121
194
|
- React Hook Form + zod
|
|
@@ -17,15 +17,15 @@ execution:
|
|
|
17
17
|
- Auditing README quality across repos
|
|
18
18
|
- Checking for hallucinated setup, commands, or features
|
|
19
19
|
|
|
20
|
-
Do NOT use
|
|
20
|
+
Do NOT use when:
|
|
21
21
|
|
|
22
|
-
-
|
|
22
|
+
- Only proofreading grammar or formatting
|
|
23
23
|
- Writing a README from scratch → use `readme-writing` or `readme-writing-package`
|
|
24
24
|
|
|
25
25
|
## Goal
|
|
26
26
|
|
|
27
|
-
Ensure README is correct (no invented content), aligned with the repo,
|
|
28
|
-
useful for the audience,
|
|
27
|
+
Ensure the README is correct (no invented content), aligned with the repo,
|
|
28
|
+
useful for the intended audience, and has a strong quickstart path.
|
|
29
29
|
|
|
30
30
|
## Core principles
|
|
31
31
|
|
|
@@ -39,8 +39,8 @@ useful for the audience, with a strong quickstart path.
|
|
|
39
39
|
|
|
40
40
|
### 1. Identify README type and audience
|
|
41
41
|
|
|
42
|
-
Determine repo type (package, app, CLI, internal, framework) and audience
|
|
43
|
-
(consumers, contributors, team). Check if structure matches type.
|
|
42
|
+
Determine repo type (package, app, CLI, internal, framework) and target audience
|
|
43
|
+
(consumers, contributors, team). Check if README structure matches this type.
|
|
44
44
|
|
|
45
45
|
### 2. Cross-check against repository
|
|
46
46
|
|
|
@@ -53,16 +53,17 @@ Inspect truth-defining files:
|
|
|
53
53
|
- Source entrypoints — actual public API
|
|
54
54
|
- Config files, tests, existing docs
|
|
55
55
|
|
|
56
|
-
Verify: install steps exist, commands work, features implemented,
|
|
56
|
+
Verify: install steps exist, commands work, features are implemented,
|
|
57
|
+
dependencies are real.
|
|
57
58
|
|
|
58
59
|
### 3. Validate installation and setup
|
|
59
60
|
|
|
60
61
|
Check:
|
|
61
62
|
|
|
62
|
-
- Install command correct and complete
|
|
63
|
-
- Required post-install steps documented
|
|
63
|
+
- Install command is correct and complete
|
|
64
|
+
- Required post-install steps are documented
|
|
64
65
|
- No hidden setup assumptions
|
|
65
|
-
- Environment/config requirements listed
|
|
66
|
+
- Environment/config requirements are listed
|
|
66
67
|
|
|
67
68
|
Flag: missing steps, incorrect steps, implied-but-unwritten steps.
|
|
68
69
|
|
|
@@ -70,10 +71,10 @@ Flag: missing steps, incorrect steps, implied-but-unwritten steps.
|
|
|
70
71
|
|
|
71
72
|
Check:
|
|
72
73
|
|
|
73
|
-
- First example minimal and realistic
|
|
74
|
+
- First example is minimal and realistic
|
|
74
75
|
- Example matches actual API (verify against source)
|
|
75
|
-
- Example
|
|
76
|
-
- Example not overly complex or abstract
|
|
76
|
+
- Example does not rely on undocumented setup
|
|
77
|
+
- Example is not overly complex or abstract
|
|
77
78
|
|
|
78
79
|
Flag: pseudo-code, oversized examples, API mismatches.
|
|
79
80
|
|
|
@@ -82,8 +83,8 @@ Flag: pseudo-code, oversized examples, API mismatches.
|
|
|
82
83
|
Check:
|
|
83
84
|
|
|
84
85
|
- Runtime versions stated (PHP, Node, etc.)
|
|
85
|
-
- Framework compatibility explicit
|
|
86
|
-
- Dependencies declared
|
|
86
|
+
- Framework compatibility is explicit
|
|
87
|
+
- Dependencies are declared
|
|
87
88
|
|
|
88
89
|
Flag: missing compatibility, vague claims ("works with most versions"),
|
|
89
90
|
unconfirmed broad support.
|
|
@@ -92,19 +93,19 @@ unconfirmed broad support.
|
|
|
92
93
|
|
|
93
94
|
Check:
|
|
94
95
|
|
|
95
|
-
- Strong first screen (what + why + quickstart before
|
|
96
|
+
- Strong first screen (what + why + quickstart visible before scrolling)
|
|
96
97
|
- Logical section order for repo type
|
|
97
98
|
- No unnecessary sections (padded boilerplate)
|
|
98
99
|
- No missing critical sections
|
|
99
100
|
|
|
100
|
-
Common issues: architecture before installation, no quickstart,
|
|
101
|
-
usage, generic template sections.
|
|
101
|
+
Common issues: architecture before installation, no quickstart,
|
|
102
|
+
buried usage instructions, generic template sections.
|
|
102
103
|
|
|
103
104
|
### 7. Detect hallucinations
|
|
104
105
|
|
|
105
|
-
|
|
106
|
+
Explicitly search for:
|
|
106
107
|
|
|
107
|
-
- Commands not in repo
|
|
108
|
+
- Commands not present in repo
|
|
108
109
|
- Features not implemented
|
|
109
110
|
- Setup steps not supported by scripts/configs
|
|
110
111
|
- Assumptions about environment or tools
|
|
@@ -133,11 +134,11 @@ Structure checks:
|
|
|
133
134
|
- ToC present if > 150 lines or > 6 top-level (`##`) sections
|
|
134
135
|
- Multi-platform install (> 5 variants) uses a table with deep links, not stacked blocks
|
|
135
136
|
- `<details>` used only for secondary, bulky content — never for install, first example, or requirements
|
|
136
|
-
- No duplication between README and `/docs/` (
|
|
137
|
+
- No duplication between README and `/docs/` (same content in two places drifts)
|
|
137
138
|
- Each `/docs/` file linked from README is self-contained (not just a fragment)
|
|
138
139
|
|
|
139
|
-
→ See `guidelines/docs/readme-size-and-splitting.md` for full thresholds,
|
|
140
|
-
splitting strategies, anti-patterns.
|
|
140
|
+
→ See `docs/guidelines/docs/readme-size-and-splitting.md` for full thresholds,
|
|
141
|
+
splitting strategies, and anti-patterns.
|
|
141
142
|
|
|
142
143
|
## Output format
|
|
143
144
|
|
|
@@ -159,9 +160,9 @@ splitting strategies, anti-patterns.
|
|
|
159
160
|
|
|
160
161
|
Severity levels:
|
|
161
162
|
|
|
162
|
-
- **❌ Critical** — breaks onboarding or factually incorrect
|
|
163
|
+
- **❌ Critical** — breaks onboarding or is factually incorrect
|
|
163
164
|
- **⚠️ Major** — confusing, incomplete, or misleading
|
|
164
|
-
- **ℹ️ Minor** — clarity, formatting, structure
|
|
165
|
+
- **ℹ️ Minor** — clarity improvement, formatting, structure
|
|
165
166
|
|
|
166
167
|
### 3. Confidence
|
|
167
168
|
|
|
@@ -171,11 +172,11 @@ Severity levels:
|
|
|
171
172
|
|
|
172
173
|
## Gotcha
|
|
173
174
|
|
|
174
|
-
- Model
|
|
175
|
+
- Model tends to trust the README instead of verifying against the repo
|
|
175
176
|
- Model may miss subtle mismatches between examples and real APIs
|
|
176
|
-
- Model
|
|
177
|
-
-
|
|
178
|
-
- Model
|
|
177
|
+
- Model may focus on wording/style instead of correctness
|
|
178
|
+
- A well-formatted README with wrong commands is worse than ugly but correct
|
|
179
|
+
- Model may accept "looks reasonable" compatibility without checking CI matrix
|
|
179
180
|
|
|
180
181
|
## Do NOT
|
|
181
182
|
|
|
@@ -184,4 +185,4 @@ Severity levels:
|
|
|
184
185
|
- Do NOT accept vague compatibility statements as valid
|
|
185
186
|
- Do NOT focus only on wording while missing structural/correctness issues
|
|
186
187
|
- Do NOT overlook mismatches between examples and actual source code
|
|
187
|
-
- Do NOT soften findings — state issues clearly with severity
|
|
188
|
+
- Do NOT soften findings — state issues clearly with severity
|
|
@@ -15,29 +15,34 @@ execution:
|
|
|
15
15
|
- Creating a new README for an **application, CLI tool, internal tool, template, or framework**
|
|
16
16
|
- Rewriting an outdated or weak README
|
|
17
17
|
- Improving after major repo changes (new tooling, restructure)
|
|
18
|
+
- Adapting README for a different audience
|
|
18
19
|
|
|
19
|
-
Do NOT use
|
|
20
|
+
Do NOT use when:
|
|
20
21
|
|
|
21
|
-
- **
|
|
22
|
-
-
|
|
22
|
+
- Writing a README for a **reusable package or library** → use `readme-writing-package` instead
|
|
23
|
+
- Fixing minor typos or updating a single section
|
|
24
|
+
- Writing reference docs that belong in separate files
|
|
25
|
+
- Only adding a badge or version bump
|
|
23
26
|
|
|
24
27
|
## Goal
|
|
25
28
|
|
|
26
|
-
|
|
27
|
-
Reflects the real repository — not assumptions.
|
|
29
|
+
Write a README that is accurate, evidence-based, scannable, and useful for
|
|
30
|
+
the intended audience. Reflects the real repository — not assumptions.
|
|
28
31
|
|
|
29
32
|
## Core principles
|
|
30
33
|
|
|
31
|
-
- Analyze first, write second — inspect repo before writing
|
|
32
|
-
- Evidence-based — every command, step, feature must exist in repo
|
|
33
|
-
- Strong quickstart over exhaustive noise — get started in 30 seconds
|
|
34
|
-
- Right scope — overview in README, deep content in dedicated docs
|
|
35
|
-
- Match repo type — package README
|
|
34
|
+
- **Analyze first, write second** — inspect the repo before writing a single line
|
|
35
|
+
- **Evidence-based only** — every command, setup step, and feature must exist in the repo
|
|
36
|
+
- **Strong quickstart over exhaustive noise** — a reader should get started in 30 seconds
|
|
37
|
+
- **Right scope** — high-level overview in README, deep content in dedicated docs
|
|
38
|
+
- **Match the repo type** — a package README differs from an app, CLI tool, or framework
|
|
36
39
|
|
|
37
40
|
## Procedure
|
|
38
41
|
|
|
39
42
|
### 1. Identify README type and audience
|
|
40
43
|
|
|
44
|
+
Determine repository type:
|
|
45
|
+
|
|
41
46
|
| Type | Audience | Priority |
|
|
42
47
|
|---|---|---|
|
|
43
48
|
| **Library/Package** | Developers consuming it | Install → Usage → API |
|
|
@@ -49,94 +54,114 @@ Reflects the real repository — not assumptions.
|
|
|
49
54
|
|
|
50
55
|
### 2. Inspect the repository
|
|
51
56
|
|
|
52
|
-
Read
|
|
57
|
+
Read these files to extract truth:
|
|
53
58
|
|
|
54
|
-
- `README.md` (existing
|
|
55
|
-
- `
|
|
56
|
-
- `
|
|
57
|
-
-
|
|
59
|
+
- `README.md` (existing, if any)
|
|
60
|
+
- `package.json`, `composer.json` — name, description, scripts, dependencies
|
|
61
|
+
- `Dockerfile`, `docker-compose.yml` — runtime setup
|
|
62
|
+
- `Taskfile.yml`, `Makefile` — available commands
|
|
63
|
+
- CI workflows — what gets tested, how
|
|
64
|
+
- `docs/`, `agents/` — existing documentation
|
|
65
|
+
- Config files — what tools are used
|
|
58
66
|
|
|
59
|
-
Extract: purpose, install path, commands, requirements,
|
|
67
|
+
Extract: project purpose, install path, main commands, requirements,
|
|
68
|
+
key workflows, testing/linting commands, contribution flow.
|
|
60
69
|
|
|
61
70
|
### 3. Choose sections
|
|
62
71
|
|
|
63
|
-
Only include sections that provide value:
|
|
72
|
+
Only include sections that provide value. Candidates:
|
|
64
73
|
|
|
65
74
|
1. **Title + one-line summary** — always
|
|
66
|
-
2. **Why / what problem** — if not obvious from name
|
|
67
|
-
3. **Key features** — if more than trivial
|
|
75
|
+
2. **Why / what problem it solves** — if not obvious from name
|
|
76
|
+
3. **Key features or capabilities** — if more than a trivial tool
|
|
68
77
|
4. **Requirements** — only if non-obvious
|
|
69
78
|
5. **Installation / setup** — always
|
|
70
|
-
6. **Usage / quickstart** — always (most important)
|
|
71
|
-
7. **Configuration** — if applicable
|
|
72
|
-
8. **Development workflow** — if accepts contributions
|
|
79
|
+
6. **Usage / quickstart** — always (most important section)
|
|
80
|
+
7. **Configuration / customization** — if applicable
|
|
81
|
+
8. **Development workflow** — if repo accepts contributions
|
|
73
82
|
9. **Testing / quality** — if tooling exists
|
|
74
83
|
10. **Project structure** — if non-trivial
|
|
75
|
-
11. **Contributing** — if open
|
|
84
|
+
11. **Contributing** — if open or team project
|
|
76
85
|
12. **License** — if applicable
|
|
77
86
|
|
|
87
|
+
Do NOT include sections "because READMEs usually have them."
|
|
78
88
|
Skip empty or near-empty sections entirely.
|
|
79
89
|
|
|
80
90
|
### 4. Write evidence-based content
|
|
81
91
|
|
|
82
|
-
|
|
92
|
+
Rules:
|
|
93
|
+
|
|
94
|
+
- Only document commands that actually exist in the repo
|
|
83
95
|
- Only describe setup steps supported by scripts/configs
|
|
84
96
|
- Only claim features confirmed by code or docs
|
|
85
|
-
-
|
|
97
|
+
- If something is unclear: inspect more or ask — never invent
|
|
98
|
+
|
|
99
|
+
Formatting:
|
|
86
100
|
|
|
87
|
-
|
|
88
|
-
|
|
101
|
+
- Tables for structured comparisons (tools, options, features)
|
|
102
|
+
- Code blocks for every command (copy-pasteable)
|
|
103
|
+
- Short paragraphs — max 3 sentences before a break
|
|
104
|
+
- Directory trees for project structure (use `tree` format)
|
|
105
|
+
- Badges only if they link to live CI/release status
|
|
89
106
|
|
|
90
|
-
### 5. Optimize for first screen
|
|
107
|
+
### 5. Optimize for the first screen
|
|
91
108
|
|
|
92
|
-
|
|
109
|
+
A reader scanning the README should answer within 10 seconds:
|
|
93
110
|
|
|
94
|
-
|
|
111
|
+
1. What is this?
|
|
112
|
+
2. Why does it exist?
|
|
113
|
+
3. How do I install/start it?
|
|
114
|
+
|
|
115
|
+
The first screen (before scrolling) must contain the title, summary,
|
|
116
|
+
and either install command or quickstart. Everything else comes after.
|
|
95
117
|
|
|
96
118
|
### 6. Size and structure
|
|
97
119
|
|
|
98
|
-
Keep README scannable.
|
|
99
|
-
lines
|
|
100
|
-
only for secondary, bulky content
|
|
101
|
-
requirements.
|
|
120
|
+
Keep the README scannable. If it grows past ~150 lines, add a Table of
|
|
121
|
+
Contents; past ~300 lines, split deep content out to `/docs/` or
|
|
122
|
+
`references/`. Use `<details>` only for secondary, bulky content (never
|
|
123
|
+
for install, first example, or requirements).
|
|
102
124
|
|
|
103
|
-
→ See `guidelines/docs/readme-size-and-splitting.md` for thresholds,
|
|
125
|
+
→ See `docs/guidelines/docs/readme-size-and-splitting.md` for thresholds,
|
|
104
126
|
splitting strategies (reference-split, deep-link tables, collapsibles),
|
|
105
|
-
multi-audience handling, anti-patterns.
|
|
127
|
+
multi-audience handling, and anti-patterns.
|
|
106
128
|
|
|
107
129
|
### 7. Validate
|
|
108
130
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
- [ ]
|
|
131
|
+
After writing, verify:
|
|
132
|
+
|
|
133
|
+
- [ ] Every documented command exists in the repo (`Taskfile.yml`, `Makefile`, `package.json scripts`, etc.)
|
|
134
|
+
- [ ] Setup steps are reproducible (no missing prerequisites)
|
|
135
|
+
- [ ] No features or capabilities are invented
|
|
112
136
|
- [ ] First screen answers: what, why, how-to-start
|
|
113
137
|
- [ ] No dead sections (heading with 1-2 trivial sentences)
|
|
114
|
-
- [ ]
|
|
115
|
-
- [ ] Size below "overloaded" threshold, or splitting in place (see size guideline)
|
|
116
|
-
- [ ] ToC present if > 150 lines or > 6 top-level sections
|
|
138
|
+
- [ ] Scope is right — deep content moved to dedicated docs, not crammed in
|
|
139
|
+
- [ ] Size below the "overloaded" threshold, or splitting is in place (see size guideline)
|
|
140
|
+
- [ ] ToC present if README > 150 lines or > 6 top-level sections
|
|
141
|
+
- [ ] Matches existing tonality if repo has established voice
|
|
117
142
|
- [ ] All file paths and references are valid
|
|
118
143
|
|
|
119
144
|
## Output format
|
|
120
145
|
|
|
121
146
|
1. Full README draft
|
|
122
147
|
2. Short note: detected repo type + audience
|
|
123
|
-
3.
|
|
148
|
+
3. Any uncertainties or assumptions that need confirmation
|
|
124
149
|
|
|
125
150
|
## Gotcha
|
|
126
151
|
|
|
127
|
-
-
|
|
128
|
-
-
|
|
129
|
-
-
|
|
130
|
-
- Existing README structure can
|
|
131
|
-
-
|
|
132
|
-
-
|
|
152
|
+
- The model tends to write generic boilerplate instead of repo-specific documentation
|
|
153
|
+
- The model tends to include commands or setup steps that don't actually exist in the repo
|
|
154
|
+
- The model tends to over-document and bury the quickstart under walls of text
|
|
155
|
+
- Existing README structure can be misleading — don't preserve weak structure blindly
|
|
156
|
+
- READMEs for packages consumed by others need install/usage focus, not internal dev workflow
|
|
157
|
+
- The model forgets to validate commands against `Taskfile.yml` / `Makefile` / `package.json scripts`
|
|
133
158
|
|
|
134
159
|
## Do NOT
|
|
135
160
|
|
|
136
|
-
- Do NOT invent features, setup steps, or commands not in the repo
|
|
137
|
-
- Do NOT copy generic templates without adapting to the project
|
|
138
|
-
- Do NOT overload with deep reference material — link to docs
|
|
161
|
+
- Do NOT invent features, setup steps, or commands not found in the repo
|
|
162
|
+
- Do NOT copy generic README templates without adapting to the actual project
|
|
163
|
+
- Do NOT overload with deep reference material — link to docs instead
|
|
139
164
|
- Do NOT write for "everyone" — choose a real audience
|
|
140
165
|
- Do NOT skip repository inspection before writing
|
|
141
|
-
- Do NOT preserve weak structure just because it exists
|
|
142
|
-
- Do NOT add marketing language ("blazing fast", "revolutionary")
|
|
166
|
+
- Do NOT preserve weak structure from an existing README just because it exists
|
|
167
|
+
- Do NOT add marketing language ("blazing fast", "revolutionary", "next-gen")
|