@hanzlaa/rcode 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +120 -0
- package/CLAUDE.md +120 -0
- package/CONTRIBUTING.md +298 -0
- package/README.md +436 -0
- package/cli/config.js +142 -0
- package/cli/context.js +213 -0
- package/cli/dashboard.js +38 -0
- package/cli/digest.js +66 -0
- package/cli/doctor.js +283 -0
- package/cli/github-sync.js +1016 -0
- package/cli/index.js +113 -0
- package/cli/install.js +946 -0
- package/cli/lib/config.cjs +334 -0
- package/cli/lib/fsutil.cjs +76 -0
- package/cli/lib/github.cjs +365 -0
- package/cli/lib/manifest.cjs +240 -0
- package/cli/lib/memory-bank.cjs +348 -0
- package/cli/lib/model-profiles.cjs +169 -0
- package/cli/lib/prompts.cjs +355 -0
- package/cli/postinstall.js +32 -0
- package/cli/set-mode.js +94 -0
- package/cli/set-profile.js +80 -0
- package/cli/show-model.js +82 -0
- package/cli/team.js +35 -0
- package/cli/tiers.js +49 -0
- package/cli/uninstall.js +600 -0
- package/cli/update.js +373 -0
- package/package.json +60 -0
- package/rihal/agents/rihal-advisor-researcher.md +116 -0
- package/rihal/agents/rihal-ahmed.md +66 -0
- package/rihal/agents/rihal-architect.md +79 -0
- package/rihal/agents/rihal-assumptions-analyzer.md +117 -0
- package/rihal/agents/rihal-code-fixer.md +74 -0
- package/rihal/agents/rihal-code-reviewer.md +75 -0
- package/rihal/agents/rihal-codebase-mapper.md +170 -0
- package/rihal/agents/rihal-debugger.md +140 -0
- package/rihal/agents/rihal-deviation-analyzer.md +74 -0
- package/rihal/agents/rihal-docs-auditor.md +77 -0
- package/rihal/agents/rihal-edge-case-hunter.md +75 -0
- package/rihal/agents/rihal-executor.md +113 -0
- package/rihal/agents/rihal-fatima.md +68 -0
- package/rihal/agents/rihal-haitham.md +75 -0
- package/rihal/agents/rihal-hanzla.md +59 -0
- package/rihal/agents/rihal-hussain-pm.md +82 -0
- package/rihal/agents/rihal-integration-checker.md +455 -0
- package/rihal/agents/rihal-khalid.md +59 -0
- package/rihal/agents/rihal-layla.md +57 -0
- package/rihal/agents/rihal-mariam.md +58 -0
- package/rihal/agents/rihal-nasser.md +57 -0
- package/rihal/agents/rihal-noor.md +60 -0
- package/rihal/agents/rihal-nyquist-auditor.md +182 -0
- package/rihal/agents/rihal-omar.md +57 -0
- package/rihal/agents/rihal-phase-researcher.md +84 -0
- package/rihal/agents/rihal-planner.md +176 -0
- package/rihal/agents/rihal-profiler.md +74 -0
- package/rihal/agents/rihal-project-researcher.md +80 -0
- package/rihal/agents/rihal-remediation-planner.md +78 -0
- package/rihal/agents/rihal-research-synthesizer.md +253 -0
- package/rihal/agents/rihal-roadmapper.md +73 -0
- package/rihal/agents/rihal-sadiq.md +72 -0
- package/rihal/agents/rihal-security-adversary.md +82 -0
- package/rihal/agents/rihal-security-auditor.md +78 -0
- package/rihal/agents/rihal-sprint-checker.md +124 -0
- package/rihal/agents/rihal-tech-writer.md +80 -0
- package/rihal/agents/rihal-ui-auditor.md +81 -0
- package/rihal/agents/rihal-ui-designer.md +6 -0
- package/rihal/agents/rihal-ux-designer.md +83 -0
- package/rihal/agents/rihal-verifier.md +124 -0
- package/rihal/agents/rihal-waleed.md +60 -0
- package/rihal/agents/rihal-yousef.md +78 -0
- package/rihal/agents/rihal-zahra.md +62 -0
- package/rihal/agents/rihal-zayd.md +78 -0
- package/rihal/agents/rules/codebase-mapper/detailed-guide.md +615 -0
- package/rihal/agents/rules/debugger/checkpoint-recovery.md +272 -0
- package/rihal/agents/rules/debugger/debug-session-state.md +261 -0
- package/rihal/agents/rules/debugger/hypothesis-templates.md +330 -0
- package/rihal/agents/rules/debugger/investigation-protocol.md +298 -0
- package/rihal/agents/rules/debugger/scientific-method.md +317 -0
- package/rihal/agents/rules/executor/authentication-gates.md +202 -0
- package/rihal/agents/rules/executor/deviation-rules.md +191 -0
- package/rihal/agents/rules/executor/execution-flow.md +116 -0
- package/rihal/agents/rules/executor/self-check.md +241 -0
- package/rihal/agents/rules/executor/stub-detection.md +267 -0
- package/rihal/agents/rules/executor/summary-creation.md +76 -0
- package/rihal/agents/rules/executor/task-commit-protocol.md +283 -0
- package/rihal/agents/rules/executor/tdd-flow.md +294 -0
- package/rihal/agents/rules/phase-researcher/detailed-guide.md +628 -0
- package/rihal/agents/rules/planner/common-patterns.md +373 -0
- package/rihal/agents/rules/planner/dependency-analysis.md +195 -0
- package/rihal/agents/rules/planner/goal-backward-thinking.md +220 -0
- package/rihal/agents/rules/planner/sprint-verification.md +202 -0
- package/rihal/agents/rules/planner/task-templates.md +296 -0
- package/rihal/agents/rules/project-researcher/detailed-guide.md +589 -0
- package/rihal/agents/rules/roadmapper/detailed-guide.md +620 -0
- package/rihal/agents/rules/sprint-checker/dimensions.md +414 -0
- package/rihal/agents/rules/sprint-checker/process.md +377 -0
- package/rihal/agents/rules/verifier/anti-patterns.md +94 -0
- package/rihal/agents/rules/verifier/artifact-verification.md +69 -0
- package/rihal/agents/rules/verifier/behavioral-spot-checks.md +49 -0
- package/rihal/agents/rules/verifier/context-loading.md +84 -0
- package/rihal/agents/rules/verifier/data-flow-trace.md +65 -0
- package/rihal/agents/rules/verifier/gap-output.md +51 -0
- package/rihal/agents/rules/verifier/key-links.md +56 -0
- package/rihal/agents/rules/verifier/requirements-coverage.md +28 -0
- package/rihal/agents/rules/verifier/verification-report.md +131 -0
- package/rihal/bin/lib/code-references.cjs +196 -0
- package/rihal/bin/lib/config.cjs +146 -0
- package/rihal/bin/lib/council-panel.cjs +501 -0
- package/rihal/bin/lib/roadmap.cjs +256 -0
- package/rihal/bin/lib/verify.cjs +118 -0
- package/rihal/bin/rihal-hooks.cjs +204 -0
- package/rihal/bin/rihal-tools.cjs +3554 -0
- package/rihal/brain/README.md +38 -0
- package/rihal/brain/best-practices/no-autonomous-bypass.md +37 -0
- package/rihal/brain/best-practices/research-citation-rule.md +39 -0
- package/rihal/brain/best-practices/state-sync-rule.md +43 -0
- package/rihal/brain/sources.yaml +59 -0
- package/rihal/commands/add-phase.md +18 -0
- package/rihal/commands/add-tests.md +18 -0
- package/rihal/commands/add-todo.md +8 -0
- package/rihal/commands/analyze-dependencies.md +11 -0
- package/rihal/commands/audit-fix.md +14 -0
- package/rihal/commands/audit-milestone.md +12 -0
- package/rihal/commands/audit-uat.md +18 -0
- package/rihal/commands/autonomous.md +19 -0
- package/rihal/commands/brainstorm.md +11 -0
- package/rihal/commands/chain.md +8 -0
- package/rihal/commands/check-implementation-readiness.md +8 -0
- package/rihal/commands/check-todos.md +18 -0
- package/rihal/commands/cleanup.md +18 -0
- package/rihal/commands/code-review-fix.md +14 -0
- package/rihal/commands/code-review.md +14 -0
- package/rihal/commands/complete-milestone.md +12 -0
- package/rihal/commands/config.md +8 -0
- package/rihal/commands/correct-course.md +8 -0
- package/rihal/commands/council.md +25 -0
- package/rihal/commands/create-epics-and-stories.md +8 -0
- package/rihal/commands/create-story.md +8 -0
- package/rihal/commands/dashboard.md +10 -0
- package/rihal/commands/debug.md +8 -0
- package/rihal/commands/decisions.md +10 -0
- package/rihal/commands/dev-story.md +8 -0
- package/rihal/commands/diff.md +10 -0
- package/rihal/commands/discuss-phase-power.md +11 -0
- package/rihal/commands/discuss-phase.md +19 -0
- package/rihal/commands/discuss.md +23 -0
- package/rihal/commands/do.md +22 -0
- package/rihal/commands/docs-update.md +14 -0
- package/rihal/commands/document-project.md +8 -0
- package/rihal/commands/enable-hooks.md +11 -0
- package/rihal/commands/execute-sprint.md +13 -0
- package/rihal/commands/execute.md +19 -0
- package/rihal/commands/explore.md +14 -0
- package/rihal/commands/export-to-github.md +11 -0
- package/rihal/commands/forensics.md +11 -0
- package/rihal/commands/from-template.md +11 -0
- package/rihal/commands/health.md +10 -0
- package/rihal/commands/help.md +8 -0
- package/rihal/commands/import.md +12 -0
- package/rihal/commands/inbox.md +12 -0
- package/rihal/commands/init.md +14 -0
- package/rihal/commands/insert-phase.md +11 -0
- package/rihal/commands/install.md +10 -0
- package/rihal/commands/karpathy-audit.md +12 -0
- package/rihal/commands/list-plans.md +11 -0
- package/rihal/commands/list-workspaces.md +10 -0
- package/rihal/commands/map-codebase.md +14 -0
- package/rihal/commands/milestone-summary.md +11 -0
- package/rihal/commands/new-milestone.md +12 -0
- package/rihal/commands/new-project-research.md +11 -0
- package/rihal/commands/new-project-roadmap.md +11 -0
- package/rihal/commands/new-project.md +13 -0
- package/rihal/commands/new-workspace.md +12 -0
- package/rihal/commands/next.md +19 -0
- package/rihal/commands/note.md +12 -0
- package/rihal/commands/notify-test.md +10 -0
- package/rihal/commands/pause-work.md +8 -0
- package/rihal/commands/plan-milestone-gaps.md +18 -0
- package/rihal/commands/plan.md +19 -0
- package/rihal/commands/plant-seed.md +18 -0
- package/rihal/commands/pr-branch.md +18 -0
- package/rihal/commands/profile-user.md +8 -0
- package/rihal/commands/progress.md +19 -0
- package/rihal/commands/quick.md +14 -0
- package/rihal/commands/remove-phase.md +18 -0
- package/rihal/commands/remove-workspace.md +11 -0
- package/rihal/commands/replay.md +11 -0
- package/rihal/commands/report.md +10 -0
- package/rihal/commands/rerun.md +11 -0
- package/rihal/commands/research-phase.md +18 -0
- package/rihal/commands/resume-work.md +8 -0
- package/rihal/commands/review-adversarial.md +8 -0
- package/rihal/commands/review-edge-case-hunter.md +8 -0
- package/rihal/commands/review.md +18 -0
- package/rihal/commands/scan.md +14 -0
- package/rihal/commands/secure-phase.md +14 -0
- package/rihal/commands/session-report.md +10 -0
- package/rihal/commands/settings.md +8 -0
- package/rihal/commands/ship.md +18 -0
- package/rihal/commands/show.md +10 -0
- package/rihal/commands/sprint-planning.md +20 -0
- package/rihal/commands/sprint-status.md +21 -0
- package/rihal/commands/stats.md +10 -0
- package/rihal/commands/status.md +21 -0
- package/rihal/commands/ui-phase.md +8 -0
- package/rihal/commands/ui-review.md +8 -0
- package/rihal/commands/undo.md +14 -0
- package/rihal/commands/update.md +11 -0
- package/rihal/commands/validate-phase.md +18 -0
- package/rihal/commands/verify-phase.md +18 -0
- package/rihal/commands/verify-work.md +19 -0
- package/rihal/commands/why.md +10 -0
- package/rihal/commands/workstream.md +11 -0
- package/rihal/config/model-profiles.json +226 -0
- package/rihal/config/model-profiles.schema.json +36 -0
- package/rihal/config.yaml +39 -0
- package/rihal/digests/README.md +50 -0
- package/rihal/digests/fatima.md +24 -0
- package/rihal/digests/hussain-pm.md +24 -0
- package/rihal/digests/mariam.md +24 -0
- package/rihal/digests/sadiq.md +24 -0
- package/rihal/digests/waleed.md +24 -0
- package/rihal/modules/core.yaml +101 -0
- package/rihal/modules/discovery.yaml +50 -0
- package/rihal/modules/execution.yaml +66 -0
- package/rihal/references/brain-methods.csv +9 -0
- package/rihal/references/checklist-architect.md +146 -0
- package/rihal/references/checklist-change.md +136 -0
- package/rihal/references/checklist-pm.md +154 -0
- package/rihal/references/checklist-po-master.md +100 -0
- package/rihal/references/checklist-story-dod.md +75 -0
- package/rihal/references/checklist-story-draft.md +53 -0
- package/rihal/references/checkpoints-index.md +53 -0
- package/rihal/references/checkpoints.md +778 -0
- package/rihal/references/codebase-grounding.md +76 -0
- package/rihal/references/command-redirect-format.md +62 -0
- package/rihal/references/commit-conventions.md +125 -0
- package/rihal/references/common-bug-patterns-index.md +44 -0
- package/rihal/references/common-bug-patterns.md +621 -0
- package/rihal/references/context-budget.md +104 -0
- package/rihal/references/continuation-format.md +249 -0
- package/rihal/references/council-protocol.md +91 -0
- package/rihal/references/domain-probes.md +213 -0
- package/rihal/references/elicitation-methods.csv +16 -0
- package/rihal/references/execution-protocol.md +155 -0
- package/rihal/references/gate-prompts.md +212 -0
- package/rihal/references/gates.md +127 -0
- package/rihal/references/git-integration.md +159 -0
- package/rihal/references/git-planning-commit.md +185 -0
- package/rihal/references/karpathy-guidelines.md +79 -0
- package/rihal/references/model-profiles.md +90 -0
- package/rihal/references/no-unauthorized-git-ops.md +73 -0
- package/rihal/references/output-format.md +319 -0
- package/rihal/references/output-realism.md +52 -0
- package/rihal/references/project-types.yaml +270 -0
- package/rihal/references/questioning.md +163 -0
- package/rihal/references/response-style.md +81 -0
- package/rihal/references/state-schema.md +366 -0
- package/rihal/references/tdd.md +263 -0
- package/rihal/references/thinking-models-debug.md +126 -0
- package/rihal/references/thinking-models-planning.md +127 -0
- package/rihal/references/ui-brand.md +254 -0
- package/rihal/references/verification-patterns-index.md +76 -0
- package/rihal/references/verification-patterns.md +612 -0
- package/rihal/references/workstream-flag.md +166 -0
- package/rihal/skills/SKILLS_INDEX.md +114 -0
- package/rihal/skills/_shared/no-autonomous-bypass.md +37 -0
- package/rihal/skills/_shared/research-citation-rule.md +39 -0
- package/rihal/skills/_shared/state-sync-rule.md +43 -0
- package/rihal/skills/actions/1-analysis/research/rihal-domain-research/SKILL.md +31 -0
- package/rihal/skills/actions/1-analysis/research/rihal-domain-research/domain-steps/step-01-init.md +137 -0
- package/rihal/skills/actions/1-analysis/research/rihal-domain-research/domain-steps/step-02-domain-analysis.md +229 -0
- package/rihal/skills/actions/1-analysis/research/rihal-domain-research/domain-steps/step-03-competitive-landscape.md +238 -0
- package/rihal/skills/actions/1-analysis/research/rihal-domain-research/domain-steps/step-04-regulatory-focus.md +206 -0
- package/rihal/skills/actions/1-analysis/research/rihal-domain-research/domain-steps/step-05-technical-trends.md +234 -0
- package/rihal/skills/actions/1-analysis/research/rihal-domain-research/domain-steps/step-06-research-synthesis.md +444 -0
- package/rihal/skills/actions/1-analysis/research/rihal-domain-research/research.template.md +29 -0
- package/rihal/skills/actions/1-analysis/research/rihal-domain-research/workflow.md +49 -0
- package/rihal/skills/actions/1-analysis/research/rihal-market-research/SKILL.md +30 -0
- package/rihal/skills/actions/1-analysis/research/rihal-market-research/research.template.md +29 -0
- package/rihal/skills/actions/1-analysis/research/rihal-market-research/steps/step-01-init.md +184 -0
- package/rihal/skills/actions/1-analysis/research/rihal-market-research/steps/step-02-customer-behavior.md +239 -0
- package/rihal/skills/actions/1-analysis/research/rihal-market-research/steps/step-03-customer-pain-points.md +251 -0
- package/rihal/skills/actions/1-analysis/research/rihal-market-research/steps/step-04-customer-decisions.md +261 -0
- package/rihal/skills/actions/1-analysis/research/rihal-market-research/steps/step-05-competitive-analysis.md +173 -0
- package/rihal/skills/actions/1-analysis/research/rihal-market-research/steps/step-06-research-completion.md +478 -0
- package/rihal/skills/actions/1-analysis/research/rihal-market-research/workflow.md +49 -0
- package/rihal/skills/actions/1-analysis/research/rihal-technical-research/SKILL.md +31 -0
- package/rihal/skills/actions/1-analysis/research/rihal-technical-research/research.template.md +29 -0
- package/rihal/skills/actions/1-analysis/research/rihal-technical-research/technical-steps/step-01-init.md +137 -0
- package/rihal/skills/actions/1-analysis/research/rihal-technical-research/technical-steps/step-02-technical-overview.md +239 -0
- package/rihal/skills/actions/1-analysis/research/rihal-technical-research/technical-steps/step-03-integration-patterns.md +248 -0
- package/rihal/skills/actions/1-analysis/research/rihal-technical-research/technical-steps/step-04-architectural-patterns.md +202 -0
- package/rihal/skills/actions/1-analysis/research/rihal-technical-research/technical-steps/step-05-implementation-research.md +233 -0
- package/rihal/skills/actions/1-analysis/research/rihal-technical-research/technical-steps/step-06-research-synthesis.md +487 -0
- package/rihal/skills/actions/1-analysis/research/rihal-technical-research/workflow.md +50 -0
- package/rihal/skills/actions/1-analysis/rihal-document-project/SKILL.md +30 -0
- package/rihal/skills/actions/1-analysis/rihal-document-project/checklist.md +245 -0
- package/rihal/skills/actions/1-analysis/rihal-document-project/documentation-requirements.csv +12 -0
- package/rihal/skills/actions/1-analysis/rihal-document-project/instructions.md +128 -0
- package/rihal/skills/actions/1-analysis/rihal-document-project/templates/deep-dive-template.md +345 -0
- package/rihal/skills/actions/1-analysis/rihal-document-project/templates/index-template.md +169 -0
- package/rihal/skills/actions/1-analysis/rihal-document-project/templates/project-overview-template.md +103 -0
- package/rihal/skills/actions/1-analysis/rihal-document-project/templates/project-scan-report-schema.json +160 -0
- package/rihal/skills/actions/1-analysis/rihal-document-project/templates/source-tree-template.md +135 -0
- package/rihal/skills/actions/1-analysis/rihal-document-project/workflow.md +27 -0
- package/rihal/skills/actions/1-analysis/rihal-document-project/workflows/deep-dive-instructions.md +299 -0
- package/rihal/skills/actions/1-analysis/rihal-document-project/workflows/deep-dive-workflow.md +34 -0
- package/rihal/skills/actions/1-analysis/rihal-document-project/workflows/full-scan-instructions.md +1107 -0
- package/rihal/skills/actions/1-analysis/rihal-document-project/workflows/full-scan-workflow.md +34 -0
- package/rihal/skills/actions/1-analysis/rihal-prfaq/SKILL.md +120 -0
- package/rihal/skills/actions/1-analysis/rihal-prfaq/agents/artifact-analyzer.md +60 -0
- package/rihal/skills/actions/1-analysis/rihal-prfaq/agents/web-researcher.md +49 -0
- package/rihal/skills/actions/1-analysis/rihal-prfaq/assets/prfaq-template.md +62 -0
- package/rihal/skills/actions/1-analysis/rihal-prfaq/references/customer-faq.md +55 -0
- package/rihal/skills/actions/1-analysis/rihal-prfaq/references/internal-faq.md +51 -0
- package/rihal/skills/actions/1-analysis/rihal-prfaq/references/press-release.md +60 -0
- package/rihal/skills/actions/1-analysis/rihal-prfaq/references/verdict.md +79 -0
- package/rihal/skills/actions/1-analysis/rihal-prfaq/rihal-manifest.json +16 -0
- package/rihal/skills/actions/1-analysis/rihal-product-brief/SKILL.md +112 -0
- package/rihal/skills/actions/1-analysis/rihal-product-brief/agents/artifact-analyzer.md +60 -0
- package/rihal/skills/actions/1-analysis/rihal-product-brief/agents/opportunity-reviewer.md +44 -0
- package/rihal/skills/actions/1-analysis/rihal-product-brief/agents/skeptic-reviewer.md +44 -0
- package/rihal/skills/actions/1-analysis/rihal-product-brief/agents/web-researcher.md +49 -0
- package/rihal/skills/actions/1-analysis/rihal-product-brief/prompts/contextual-discovery.md +57 -0
- package/rihal/skills/actions/1-analysis/rihal-product-brief/prompts/draft-and-review.md +86 -0
- package/rihal/skills/actions/1-analysis/rihal-product-brief/prompts/finalize.md +75 -0
- package/rihal/skills/actions/1-analysis/rihal-product-brief/prompts/guided-elicitation.md +70 -0
- package/rihal/skills/actions/1-analysis/rihal-product-brief/resources/brief-template.md +60 -0
- package/rihal/skills/actions/1-analysis/rihal-product-brief/rihal-manifest.json +17 -0
- package/rihal/skills/actions/2-plan/rihal-create-epics-and-stories/SKILL.md +30 -0
- package/rihal/skills/actions/2-plan/rihal-create-epics-and-stories/steps/step-01-validate-prerequisites.md +255 -0
- package/rihal/skills/actions/2-plan/rihal-create-epics-and-stories/steps/step-02-design-epics.md +212 -0
- package/rihal/skills/actions/2-plan/rihal-create-epics-and-stories/steps/step-03-create-stories.md +255 -0
- package/rihal/skills/actions/2-plan/rihal-create-epics-and-stories/steps/step-04-final-validation.md +131 -0
- package/rihal/skills/actions/2-plan/rihal-create-epics-and-stories/templates/epics-template.md +61 -0
- package/rihal/skills/actions/2-plan/rihal-create-epics-and-stories/workflow.md +54 -0
- package/rihal/skills/actions/2-plan/rihal-create-milestone/SKILL.md +39 -0
- package/rihal/skills/actions/2-plan/rihal-create-milestone/steps/README.md +30 -0
- package/rihal/skills/actions/2-plan/rihal-create-milestone/steps/step-01-init.md +62 -0
- package/rihal/skills/actions/2-plan/rihal-create-milestone/steps/step-02-outcomes.md +64 -0
- package/rihal/skills/actions/2-plan/rihal-create-milestone/steps/step-03-sequencing.md +65 -0
- package/rihal/skills/actions/2-plan/rihal-create-milestone/steps/step-04-windows.md +60 -0
- package/rihal/skills/actions/2-plan/rihal-create-milestone/steps/step-05-kill-criteria.md +59 -0
- package/rihal/skills/actions/2-plan/rihal-create-milestone/steps/step-06-phase-stubs.md +56 -0
- package/rihal/skills/actions/2-plan/rihal-create-milestone/steps/step-07-backlog.md +44 -0
- package/rihal/skills/actions/2-plan/rihal-create-milestone/steps/step-08-write-roadmap.md +58 -0
- package/rihal/skills/actions/2-plan/rihal-create-milestone/steps/step-09-state-sync.md +62 -0
- package/rihal/skills/actions/2-plan/rihal-create-milestone/steps/step-10-complete.md +56 -0
- package/rihal/skills/actions/2-plan/rihal-create-milestone/workflow.md +93 -0
- package/rihal/skills/actions/2-plan/rihal-create-prd/SKILL.md +40 -0
- package/rihal/skills/actions/2-plan/rihal-create-prd/data/domain-complexity.csv +15 -0
- package/rihal/skills/actions/2-plan/rihal-create-prd/data/prd-purpose.md +197 -0
- package/rihal/skills/actions/2-plan/rihal-create-prd/data/project-types.csv +11 -0
- package/rihal/skills/actions/2-plan/rihal-create-prd/steps-c/step-01-init.md +178 -0
- package/rihal/skills/actions/2-plan/rihal-create-prd/steps-c/step-01b-continue.md +161 -0
- package/rihal/skills/actions/2-plan/rihal-create-prd/steps-c/step-02-discovery.md +208 -0
- package/rihal/skills/actions/2-plan/rihal-create-prd/steps-c/step-02b-vision.md +142 -0
- package/rihal/skills/actions/2-plan/rihal-create-prd/steps-c/step-02c-executive-summary.md +158 -0
- package/rihal/skills/actions/2-plan/rihal-create-prd/steps-c/step-03-success.md +214 -0
- package/rihal/skills/actions/2-plan/rihal-create-prd/steps-c/step-04-journeys.md +201 -0
- package/rihal/skills/actions/2-plan/rihal-create-prd/steps-c/step-05-domain.md +194 -0
- package/rihal/skills/actions/2-plan/rihal-create-prd/steps-c/step-06-innovation.md +211 -0
- package/rihal/skills/actions/2-plan/rihal-create-prd/steps-c/step-07-project-type.md +222 -0
- package/rihal/skills/actions/2-plan/rihal-create-prd/steps-c/step-08-scoping.md +216 -0
- package/rihal/skills/actions/2-plan/rihal-create-prd/steps-c/step-09-functional.md +219 -0
- package/rihal/skills/actions/2-plan/rihal-create-prd/steps-c/step-10-nonfunctional.md +230 -0
- package/rihal/skills/actions/2-plan/rihal-create-prd/steps-c/step-11-polish.md +221 -0
- package/rihal/skills/actions/2-plan/rihal-create-prd/steps-c/step-12-complete.md +115 -0
- package/rihal/skills/actions/2-plan/rihal-create-prd/templates/prd-template.md +10 -0
- package/rihal/skills/actions/2-plan/rihal-create-prd/workflow.md +64 -0
- package/rihal/skills/actions/2-plan/rihal-create-story/SKILL.md +31 -0
- package/rihal/skills/actions/2-plan/rihal-create-story/checklist.md +357 -0
- package/rihal/skills/actions/2-plan/rihal-create-story/discover-inputs.md +88 -0
- package/rihal/skills/actions/2-plan/rihal-create-story/template.md +49 -0
- package/rihal/skills/actions/2-plan/rihal-create-story/workflow.md +380 -0
- package/rihal/skills/actions/2-plan/rihal-create-ux-design/SKILL.md +31 -0
- package/rihal/skills/actions/2-plan/rihal-create-ux-design/steps/step-01-init.md +135 -0
- package/rihal/skills/actions/2-plan/rihal-create-ux-design/steps/step-01b-continue.md +127 -0
- package/rihal/skills/actions/2-plan/rihal-create-ux-design/steps/step-02-discovery.md +190 -0
- package/rihal/skills/actions/2-plan/rihal-create-ux-design/steps/step-03-core-experience.md +217 -0
- package/rihal/skills/actions/2-plan/rihal-create-ux-design/steps/step-04-emotional-response.md +220 -0
- package/rihal/skills/actions/2-plan/rihal-create-ux-design/steps/step-05-inspiration.md +235 -0
- package/rihal/skills/actions/2-plan/rihal-create-ux-design/steps/step-06-design-system.md +253 -0
- package/rihal/skills/actions/2-plan/rihal-create-ux-design/steps/step-07-defining-experience.md +255 -0
- package/rihal/skills/actions/2-plan/rihal-create-ux-design/steps/step-08-visual-foundation.md +225 -0
- package/rihal/skills/actions/2-plan/rihal-create-ux-design/steps/step-09-design-directions.md +225 -0
- package/rihal/skills/actions/2-plan/rihal-create-ux-design/steps/step-10-user-journeys.md +242 -0
- package/rihal/skills/actions/2-plan/rihal-create-ux-design/steps/step-11-component-strategy.md +249 -0
- package/rihal/skills/actions/2-plan/rihal-create-ux-design/steps/step-12-ux-patterns.md +238 -0
- package/rihal/skills/actions/2-plan/rihal-create-ux-design/steps/step-13-responsive-accessibility.md +265 -0
- package/rihal/skills/actions/2-plan/rihal-create-ux-design/steps/step-14-complete.md +171 -0
- package/rihal/skills/actions/2-plan/rihal-create-ux-design/ux-design-template.md +13 -0
- package/rihal/skills/actions/2-plan/rihal-create-ux-design/workflow.md +36 -0
- package/rihal/skills/actions/2-plan/rihal-edit-prd/SKILL.md +30 -0
- package/rihal/skills/actions/2-plan/rihal-edit-prd/steps-e/step-e-01-discovery.md +242 -0
- package/rihal/skills/actions/2-plan/rihal-edit-prd/steps-e/step-e-01b-legacy-conversion.md +204 -0
- package/rihal/skills/actions/2-plan/rihal-edit-prd/steps-e/step-e-02-review.md +245 -0
- package/rihal/skills/actions/2-plan/rihal-edit-prd/steps-e/step-e-03-edit.md +250 -0
- package/rihal/skills/actions/2-plan/rihal-edit-prd/steps-e/step-e-04-complete.md +165 -0
- package/rihal/skills/actions/2-plan/rihal-edit-prd/workflow.md +63 -0
- package/rihal/skills/actions/2-plan/rihal-frontend-design/SKILL.md +169 -0
- package/rihal/skills/actions/2-plan/rihal-validate-prd/SKILL.md +29 -0
- package/rihal/skills/actions/2-plan/rihal-validate-prd/data/domain-complexity.csv +15 -0
- package/rihal/skills/actions/2-plan/rihal-validate-prd/data/prd-purpose.md +197 -0
- package/rihal/skills/actions/2-plan/rihal-validate-prd/data/project-types.csv +11 -0
- package/rihal/skills/actions/2-plan/rihal-validate-prd/steps-v/step-v-01-discovery.md +221 -0
- package/rihal/skills/actions/2-plan/rihal-validate-prd/steps-v/step-v-02-format-detection.md +188 -0
- package/rihal/skills/actions/2-plan/rihal-validate-prd/steps-v/step-v-02b-parity-check.md +206 -0
- package/rihal/skills/actions/2-plan/rihal-validate-prd/steps-v/step-v-03-density-validation.md +171 -0
- package/rihal/skills/actions/2-plan/rihal-validate-prd/steps-v/step-v-04-brief-coverage-validation.md +211 -0
- package/rihal/skills/actions/2-plan/rihal-validate-prd/steps-v/step-v-05-measurability-validation.md +225 -0
- package/rihal/skills/actions/2-plan/rihal-validate-prd/steps-v/step-v-06-traceability-validation.md +214 -0
- package/rihal/skills/actions/2-plan/rihal-validate-prd/steps-v/step-v-07-implementation-leakage-validation.md +202 -0
- package/rihal/skills/actions/2-plan/rihal-validate-prd/steps-v/step-v-08-domain-compliance-validation.md +240 -0
- package/rihal/skills/actions/2-plan/rihal-validate-prd/steps-v/step-v-09-project-type-validation.md +260 -0
- package/rihal/skills/actions/2-plan/rihal-validate-prd/steps-v/step-v-10-smart-validation.md +206 -0
- package/rihal/skills/actions/2-plan/rihal-validate-prd/steps-v/step-v-11-holistic-quality-validation.md +261 -0
- package/rihal/skills/actions/2-plan/rihal-validate-prd/steps-v/step-v-12-completeness-validation.md +239 -0
- package/rihal/skills/actions/2-plan/rihal-validate-prd/steps-v/step-v-13-report-complete.md +229 -0
- package/rihal/skills/actions/2-plan/rihal-validate-prd/workflow.md +62 -0
- package/rihal/skills/actions/3-solutioning/rihal-check-implementation-readiness/SKILL.md +30 -0
- package/rihal/skills/actions/3-solutioning/rihal-check-implementation-readiness/steps/step-01-document-discovery.md +179 -0
- package/rihal/skills/actions/3-solutioning/rihal-check-implementation-readiness/steps/step-02-prd-analysis.md +168 -0
- package/rihal/skills/actions/3-solutioning/rihal-check-implementation-readiness/steps/step-03-epic-coverage-validation.md +169 -0
- package/rihal/skills/actions/3-solutioning/rihal-check-implementation-readiness/steps/step-04-ux-alignment.md +129 -0
- package/rihal/skills/actions/3-solutioning/rihal-check-implementation-readiness/steps/step-05-epic-quality-review.md +241 -0
- package/rihal/skills/actions/3-solutioning/rihal-check-implementation-readiness/steps/step-06-final-assessment.md +126 -0
- package/rihal/skills/actions/3-solutioning/rihal-check-implementation-readiness/templates/readiness-report-template.md +4 -0
- package/rihal/skills/actions/3-solutioning/rihal-check-implementation-readiness/workflow.md +49 -0
- package/rihal/skills/actions/3-solutioning/rihal-create-architecture/SKILL.md +32 -0
- package/rihal/skills/actions/3-solutioning/rihal-create-architecture/architecture-decision-template.md +12 -0
- package/rihal/skills/actions/3-solutioning/rihal-create-architecture/data/domain-complexity.csv +13 -0
- package/rihal/skills/actions/3-solutioning/rihal-create-architecture/data/project-types.csv +7 -0
- package/rihal/skills/actions/3-solutioning/rihal-create-architecture/steps/step-01-init.md +153 -0
- package/rihal/skills/actions/3-solutioning/rihal-create-architecture/steps/step-01b-continue.md +173 -0
- package/rihal/skills/actions/3-solutioning/rihal-create-architecture/steps/step-02-context.md +224 -0
- package/rihal/skills/actions/3-solutioning/rihal-create-architecture/steps/step-03-starter.md +329 -0
- package/rihal/skills/actions/3-solutioning/rihal-create-architecture/steps/step-04-decisions.md +318 -0
- package/rihal/skills/actions/3-solutioning/rihal-create-architecture/steps/step-05-patterns.md +359 -0
- package/rihal/skills/actions/3-solutioning/rihal-create-architecture/steps/step-06-structure.md +379 -0
- package/rihal/skills/actions/3-solutioning/rihal-create-architecture/steps/step-07-validation.md +359 -0
- package/rihal/skills/actions/3-solutioning/rihal-create-architecture/steps/step-08-complete.md +76 -0
- package/rihal/skills/actions/3-solutioning/rihal-create-architecture/workflow.md +38 -0
- package/rihal/skills/actions/3-solutioning/rihal-generate-project-context/SKILL.md +31 -0
- package/rihal/skills/actions/3-solutioning/rihal-generate-project-context/project-context-template.md +21 -0
- package/rihal/skills/actions/3-solutioning/rihal-generate-project-context/steps/step-01-discover.md +186 -0
- package/rihal/skills/actions/3-solutioning/rihal-generate-project-context/steps/step-02-generate.md +321 -0
- package/rihal/skills/actions/3-solutioning/rihal-generate-project-context/steps/step-03-complete.md +278 -0
- package/rihal/skills/actions/3-solutioning/rihal-generate-project-context/workflow.md +43 -0
- package/rihal/skills/actions/4-implementation/rihal-checkpoint-preview/SKILL.md +48 -0
- package/rihal/skills/actions/4-implementation/rihal-checkpoint-preview/generate-trail.md +38 -0
- package/rihal/skills/actions/4-implementation/rihal-checkpoint-preview/step-01-orientation.md +105 -0
- package/rihal/skills/actions/4-implementation/rihal-checkpoint-preview/step-02-walkthrough.md +89 -0
- package/rihal/skills/actions/4-implementation/rihal-checkpoint-preview/step-03-detail-pass.md +106 -0
- package/rihal/skills/actions/4-implementation/rihal-checkpoint-preview/step-04-testing.md +74 -0
- package/rihal/skills/actions/4-implementation/rihal-checkpoint-preview/step-05-wrapup.md +24 -0
- package/rihal/skills/actions/4-implementation/rihal-code-review/SKILL.md +31 -0
- package/rihal/skills/actions/4-implementation/rihal-code-review/steps/step-01-gather-context.md +62 -0
- package/rihal/skills/actions/4-implementation/rihal-code-review/steps/step-02-review.md +34 -0
- package/rihal/skills/actions/4-implementation/rihal-code-review/steps/step-03-triage.md +49 -0
- package/rihal/skills/actions/4-implementation/rihal-code-review/steps/step-04-present.md +129 -0
- package/rihal/skills/actions/4-implementation/rihal-code-review/workflow.md +55 -0
- package/rihal/skills/actions/4-implementation/rihal-correct-course/SKILL.md +29 -0
- package/rihal/skills/actions/4-implementation/rihal-correct-course/checklist.md +288 -0
- package/rihal/skills/actions/4-implementation/rihal-correct-course/workflow.md +267 -0
- package/rihal/skills/actions/4-implementation/rihal-dev-story/SKILL.md +36 -0
- package/rihal/skills/actions/4-implementation/rihal-dev-story/checklist.md +80 -0
- package/rihal/skills/actions/4-implementation/rihal-dev-story/workflow.md +450 -0
- package/rihal/skills/actions/4-implementation/rihal-qa-generate-e2e-tests/SKILL.md +31 -0
- package/rihal/skills/actions/4-implementation/rihal-qa-generate-e2e-tests/checklist.md +33 -0
- package/rihal/skills/actions/4-implementation/rihal-qa-generate-e2e-tests/workflow.md +136 -0
- package/rihal/skills/actions/4-implementation/rihal-retrospective/SKILL.md +30 -0
- package/rihal/skills/actions/4-implementation/rihal-retrospective/workflow.md +1479 -0
- package/rihal/skills/actions/4-implementation/rihal-scaffold-project/SKILL.md +77 -0
- package/rihal/skills/actions/4-implementation/rihal-scaffold-project/steps/step-01-target.md +17 -0
- package/rihal/skills/actions/4-implementation/rihal-scaffold-project/steps/step-02-safety.md +35 -0
- package/rihal/skills/actions/4-implementation/rihal-scaffold-project/steps/step-03-clone.md +50 -0
- package/rihal/skills/actions/4-implementation/rihal-scaffold-project/steps/step-04-post-setup.md +44 -0
- package/rihal/skills/actions/4-implementation/rihal-sprint-planning/SKILL.md +35 -0
- package/rihal/skills/actions/4-implementation/rihal-sprint-planning/checklist.md +43 -0
- package/rihal/skills/actions/4-implementation/rihal-sprint-planning/sprint-status-template.yaml +56 -0
- package/rihal/skills/actions/4-implementation/rihal-sprint-planning/workflow.md +284 -0
- package/rihal/skills/actions/4-implementation/rihal-sprint-status/SKILL.md +30 -0
- package/rihal/skills/actions/4-implementation/rihal-sprint-status/workflow.md +261 -0
- package/rihal/skills/agents/ahmed-hassani-director/SKILL.md +121 -0
- package/rihal/skills/agents/fatima-qa/SKILL.md +106 -0
- package/rihal/skills/agents/fatima-qa/skill-manifest.yaml +11 -0
- package/rihal/skills/agents/haitham-frontend/SKILL.md +120 -0
- package/rihal/skills/agents/hanzla-engineer/SKILL.md +109 -0
- package/rihal/skills/agents/hanzla-engineer/skill-manifest.yaml +11 -0
- package/rihal/skills/agents/hussain-pm/SKILL.md +107 -0
- package/rihal/skills/agents/hussain-pm/skill-manifest.yaml +11 -0
- package/rihal/skills/agents/hussain-sm/SKILL.md +104 -0
- package/rihal/skills/agents/hussain-sm/skill-manifest.yaml +11 -0
- package/rihal/skills/agents/layla-designer/SKILL.md +96 -0
- package/rihal/skills/agents/layla-designer/skill-manifest.yaml +11 -0
- package/rihal/skills/agents/majlis-council/SKILL.md +179 -0
- package/rihal/skills/agents/mariam-marketing/SKILL.md +133 -0
- package/rihal/skills/agents/nasser-eng-manager/SKILL.md +125 -0
- package/rihal/skills/agents/noor-writer/SKILL.md +104 -0
- package/rihal/skills/agents/noor-writer/explain-concept.md +20 -0
- package/rihal/skills/agents/noor-writer/mermaid-gen.md +20 -0
- package/rihal/skills/agents/noor-writer/skill-manifest.yaml +11 -0
- package/rihal/skills/agents/noor-writer/validate-doc.md +19 -0
- package/rihal/skills/agents/noor-writer/write-document.md +20 -0
- package/rihal/skills/agents/raees-orchestrator/SKILL.md +154 -0
- package/rihal/skills/agents/sadiq-analyst/SKILL.md +106 -0
- package/rihal/skills/agents/sadiq-analyst/skill-manifest.yaml +11 -0
- package/rihal/skills/agents/waleed-architect/SKILL.md +106 -0
- package/rihal/skills/agents/waleed-architect/skill-manifest.yaml +11 -0
- package/rihal/skills/agents/yousef-backend/SKILL.md +136 -0
- package/rihal/skills/agents/zahra-branding/SKILL.md +141 -0
- package/rihal/skills/agents/zayd-ml/SKILL.md +124 -0
- package/rihal/skills/core/module-help.csv +11 -0
- package/rihal/skills/core/module.yaml +25 -0
- package/rihal/skills/core/rihal-advanced-elicitation/SKILL.md +155 -0
- package/rihal/skills/core/rihal-advanced-elicitation/methods.csv +51 -0
- package/rihal/skills/core/rihal-advanced-elicitation/rihal-advanced-elicitation/SKILL.md +148 -0
- package/rihal/skills/core/rihal-advanced-elicitation/rihal-advanced-elicitation/methods.csv +51 -0
- package/rihal/skills/core/rihal-brainstorming/SKILL.md +82 -0
- package/rihal/skills/core/rihal-brainstorming/brain-methods.csv +62 -0
- package/rihal/skills/core/rihal-brainstorming/steps/step-01-session-setup.md +214 -0
- package/rihal/skills/core/rihal-brainstorming/steps/step-01b-continue.md +124 -0
- package/rihal/skills/core/rihal-brainstorming/steps/step-02a-user-selected.md +229 -0
- package/rihal/skills/core/rihal-brainstorming/steps/step-02b-ai-recommended.md +239 -0
- package/rihal/skills/core/rihal-brainstorming/steps/step-02c-random-selection.md +211 -0
- package/rihal/skills/core/rihal-brainstorming/steps/step-02d-progressive-flow.md +266 -0
- package/rihal/skills/core/rihal-brainstorming/steps/step-03-technique-execution.md +401 -0
- package/rihal/skills/core/rihal-brainstorming/steps/step-04-idea-organization.md +305 -0
- package/rihal/skills/core/rihal-brainstorming/template.md +15 -0
- package/rihal/skills/core/rihal-brainstorming/workflow.md +53 -0
- package/rihal/skills/core/rihal-clone-website/SKILL.md +395 -0
- package/rihal/skills/core/rihal-distillator/SKILL.md +205 -0
- package/rihal/skills/core/rihal-distillator/agents/distillate-compressor.md +116 -0
- package/rihal/skills/core/rihal-distillator/agents/round-trip-reconstructor.md +68 -0
- package/rihal/skills/core/rihal-distillator/resources/compression-rules.md +51 -0
- package/rihal/skills/core/rihal-distillator/resources/distillate-format-reference.md +227 -0
- package/rihal/skills/core/rihal-distillator/resources/splitting-strategy.md +78 -0
- package/rihal/skills/core/rihal-distillator/scripts/analyze_sources.py +300 -0
- package/rihal/skills/core/rihal-distillator/scripts/tests/test_analyze_sources.py +204 -0
- package/rihal/skills/core/rihal-editorial-review-prose/SKILL.md +108 -0
- package/rihal/skills/core/rihal-editorial-review-structure/SKILL.md +193 -0
- package/rihal/skills/core/rihal-help/SKILL.md +91 -0
- package/rihal/skills/core/rihal-index-docs/SKILL.md +80 -0
- package/rihal/skills/core/rihal-init/SKILL.md +119 -0
- package/rihal/skills/core/rihal-init/resources/core-module.yaml +25 -0
- package/rihal/skills/core/rihal-init/scripts/rihal_init.py +593 -0
- package/rihal/skills/core/rihal-init/scripts/tests/test_rihal_init.py +329 -0
- package/rihal/skills/core/rihal-party-mode/SKILL.md +77 -0
- package/rihal/skills/core/rihal-party-mode/steps/step-01-agent-loading.md +138 -0
- package/rihal/skills/core/rihal-party-mode/steps/step-02-discussion-orchestration.md +187 -0
- package/rihal/skills/core/rihal-party-mode/steps/step-03-graceful-exit.md +167 -0
- package/rihal/skills/core/rihal-party-mode/workflow.md +190 -0
- package/rihal/skills/core/rihal-review-adversarial-general/SKILL.md +55 -0
- package/rihal/skills/core/rihal-review-edge-case-hunter/SKILL.md +81 -0
- package/rihal/skills/core/rihal-shard-doc/SKILL.md +119 -0
- package/rihal/skills/core/rihal-shard-doc/rihal-shard-doc/SKILL.md +122 -0
- package/rihal/team.yaml +343 -0
- package/rihal/templates/UI-SPEC.md +127 -0
- package/rihal/templates/documentation-requirements.csv +11 -0
- package/rihal/templates/github/bug-template.md +53 -0
- package/rihal/templates/github/epic-template.md +57 -0
- package/rihal/templates/github/feature-template.md +55 -0
- package/rihal/templates/github/task-template.md +52 -0
- package/rihal/templates/milestone.md +147 -0
- package/rihal/templates/projects/api-backend/PROJECT.md +37 -0
- package/rihal/templates/projects/api-backend/REQUIREMENTS.md +38 -0
- package/rihal/templates/projects/api-backend/ROADMAP.md +92 -0
- package/rihal/templates/projects/api-backend/template.yaml +17 -0
- package/rihal/templates/projects/mobile-app/PROJECT.md +37 -0
- package/rihal/templates/projects/mobile-app/REQUIREMENTS.md +32 -0
- package/rihal/templates/projects/mobile-app/ROADMAP.md +93 -0
- package/rihal/templates/projects/mobile-app/template.yaml +17 -0
- package/rihal/templates/projects/saas-b2b/PROJECT.md +40 -0
- package/rihal/templates/projects/saas-b2b/REQUIREMENTS.md +38 -0
- package/rihal/templates/projects/saas-b2b/ROADMAP.md +95 -0
- package/rihal/templates/projects/saas-b2b/template.yaml +18 -0
- package/rihal/templates/settings-hooks.json +36 -0
- package/rihal/templates/sprint.md +70 -0
- package/rihal/workflows/add-phase.md +112 -0
- package/rihal/workflows/add-tests.md +351 -0
- package/rihal/workflows/add-todo.md +181 -0
- package/rihal/workflows/analyze-dependencies.md +138 -0
- package/rihal/workflows/audit-fix.md +190 -0
- package/rihal/workflows/audit-milestone.md +155 -0
- package/rihal/workflows/audit-uat.md +109 -0
- package/rihal/workflows/autonomous.md +992 -0
- package/rihal/workflows/brainstorm.md +203 -0
- package/rihal/workflows/chain.md +188 -0
- package/rihal/workflows/check-implementation-readiness.md +193 -0
- package/rihal/workflows/check-todos.md +177 -0
- package/rihal/workflows/cleanup.md +152 -0
- package/rihal/workflows/code-review-fix.md +529 -0
- package/rihal/workflows/code-review.md +566 -0
- package/rihal/workflows/complete-milestone.md +836 -0
- package/rihal/workflows/config.md +105 -0
- package/rihal/workflows/correct-course.md +190 -0
- package/rihal/workflows/council.md +565 -0
- package/rihal/workflows/create-epics-and-stories.md +373 -0
- package/rihal/workflows/create-story.md +297 -0
- package/rihal/workflows/dashboard.md +102 -0
- package/rihal/workflows/debug.md +256 -0
- package/rihal/workflows/decisions.md +107 -0
- package/rihal/workflows/dev-story.md +432 -0
- package/rihal/workflows/diff.md +74 -0
- package/rihal/workflows/discuss-phase-power.md +325 -0
- package/rihal/workflows/discuss-phase.md +1201 -0
- package/rihal/workflows/discuss.md +227 -0
- package/rihal/workflows/do.md +175 -0
- package/rihal/workflows/docs-update.md +261 -0
- package/rihal/workflows/document-project.md +180 -0
- package/rihal/workflows/enable-hooks.md +102 -0
- package/rihal/workflows/execute-sprint.md +514 -0
- package/rihal/workflows/execute.md +1478 -0
- package/rihal/workflows/explore.md +171 -0
- package/rihal/workflows/export-to-github.md +174 -0
- package/rihal/workflows/forensics.md +201 -0
- package/rihal/workflows/from-template.md +173 -0
- package/rihal/workflows/health.md +194 -0
- package/rihal/workflows/help.md +318 -0
- package/rihal/workflows/import.md +306 -0
- package/rihal/workflows/inbox.md +418 -0
- package/rihal/workflows/init.md +245 -0
- package/rihal/workflows/insert-phase.md +116 -0
- package/rihal/workflows/install.md +85 -0
- package/rihal/workflows/karpathy-audit.md +409 -0
- package/rihal/workflows/list-plans.md +146 -0
- package/rihal/workflows/list-workspaces.md +115 -0
- package/rihal/workflows/map-codebase.md +449 -0
- package/rihal/workflows/milestone-summary.md +206 -0
- package/rihal/workflows/new-milestone.md +616 -0
- package/rihal/workflows/new-project-research.md +262 -0
- package/rihal/workflows/new-project-roadmap.md +446 -0
- package/rihal/workflows/new-project.md +1503 -0
- package/rihal/workflows/new-workspace.md +167 -0
- package/rihal/workflows/next.md +162 -0
- package/rihal/workflows/note.md +156 -0
- package/rihal/workflows/notify-test.md +113 -0
- package/rihal/workflows/pause-work.md +243 -0
- package/rihal/workflows/plan-milestone-gaps.md +273 -0
- package/rihal/workflows/plan.md +1262 -0
- package/rihal/workflows/plant-seed.md +169 -0
- package/rihal/workflows/pr-branch.md +129 -0
- package/rihal/workflows/profile-user.md +162 -0
- package/rihal/workflows/progress.md +184 -0
- package/rihal/workflows/quick.md +105 -0
- package/rihal/workflows/remove-phase.md +155 -0
- package/rihal/workflows/remove-workspace.md +158 -0
- package/rihal/workflows/replay.md +160 -0
- package/rihal/workflows/rerun.md +77 -0
- package/rihal/workflows/research-phase.md +82 -0
- package/rihal/workflows/resume-work.md +326 -0
- package/rihal/workflows/review-adversarial.md +180 -0
- package/rihal/workflows/review-edge-case-hunter.md +214 -0
- package/rihal/workflows/review.md +281 -0
- package/rihal/workflows/scan.md +135 -0
- package/rihal/workflows/secure-phase.md +196 -0
- package/rihal/workflows/session-report.md +187 -0
- package/rihal/workflows/settings.md +185 -0
- package/rihal/workflows/ship.md +237 -0
- package/rihal/workflows/show.md +63 -0
- package/rihal/workflows/sprint-planning.md +166 -0
- package/rihal/workflows/sprint-status.md +124 -0
- package/rihal/workflows/stats.md +141 -0
- package/rihal/workflows/status.md +116 -0
- package/rihal/workflows/ui-phase.md +148 -0
- package/rihal/workflows/ui-review.md +130 -0
- package/rihal/workflows/undo.md +426 -0
- package/rihal/workflows/update.md +185 -0
- package/rihal/workflows/validate-phase.md +174 -0
- package/rihal/workflows/verify-phase.md +375 -0
- package/rihal/workflows/verify-work.md +717 -0
- package/rihal/workflows/why.md +130 -0
- package/rihal/workflows/workstream.md +197 -0
- package/server/dashboard.js +632 -0
|
@@ -0,0 +1,395 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: rihal-clone-website
|
|
3
|
+
description: >
|
|
4
|
+
Reverse-engineer and clone any website pixel-perfectly — extracts assets,
|
|
5
|
+
exact CSS via getComputedStyle, content section-by-section, and dispatches
|
|
6
|
+
parallel builder agents in worktrees. Activates when the user says "clone
|
|
7
|
+
this website", "clone this site", "rebuild this page", "replicate this
|
|
8
|
+
UI", "pixel-perfect clone", "make exact UI like this", "copy this site",
|
|
9
|
+
"reverse engineer this site", "build me a clone of", "aisi website banao",
|
|
10
|
+
"yeh site clone karo", or "exact same UI chahiye like [URL]". Provide the
|
|
11
|
+
target URL as input. Do NOT use for: creating original designs from scratch
|
|
12
|
+
(use rihal-create-ux-design with Layla), writing new components from a
|
|
13
|
+
brief (use rihal-dev-story with Hanzla or Bilal), or inspiration-only
|
|
14
|
+
references without rebuild intent.
|
|
15
|
+
argument-hint: "<url>"
|
|
16
|
+
user-invocable: true
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# Clone Website (Rihal)
|
|
20
|
+
|
|
21
|
+
You are about to reverse-engineer and rebuild **$ARGUMENTS** as a pixel-perfect clone.
|
|
22
|
+
|
|
23
|
+
This is not a two-phase process (inspect then build). You are a **foreman walking the job site** — as you inspect each section of the page, you write a detailed specification to a file, then hand that file to a specialist builder agent with everything they need. Extraction and construction happen in parallel, but extraction is meticulous and produces auditable artifacts.
|
|
24
|
+
|
|
25
|
+
## Pre-Flight
|
|
26
|
+
|
|
27
|
+
1. **Chrome MCP is required.** Test it immediately. If it's not available, stop and tell the user to enable it — this skill cannot work without browser automation.
|
|
28
|
+
2. Read `TARGET.md` for URL and scope. If the URL doesn't match `$ARGUMENTS`, update it.
|
|
29
|
+
3. Verify the base project builds: `npm run build`. The Next.js + shadcn/ui + Tailwind v4 scaffold should already be in place. If not, tell the user to set it up first.
|
|
30
|
+
4. Create the output directories if they don't exist: `docs/research/`, `docs/research/components/`, `docs/design-references/`, `scripts/`.
|
|
31
|
+
|
|
32
|
+
## Guiding Principles
|
|
33
|
+
|
|
34
|
+
These are the truths that separate a successful clone from a "close enough" mess. Internalize them — they should inform every decision you make.
|
|
35
|
+
|
|
36
|
+
### 1. Completeness Beats Speed
|
|
37
|
+
|
|
38
|
+
Every builder agent must receive **everything** it needs to do its job perfectly: screenshot, exact CSS values, downloaded assets with local paths, real text content, component structure. If a builder has to guess anything — a color, a font size, a padding value — you have failed at extraction. Take the extra minute to extract one more property rather than shipping an incomplete brief.
|
|
39
|
+
|
|
40
|
+
### 2. Small Tasks, Perfect Results
|
|
41
|
+
|
|
42
|
+
When an agent gets "build the entire features section," it glosses over details — it approximates spacing, guesses font sizes, and produces something "close enough" but clearly wrong. When it gets a single focused component with exact CSS values, it nails it every time.
|
|
43
|
+
|
|
44
|
+
Look at each section and judge its complexity. A simple banner with a heading and a button? One agent. A complex section with 3 different card variants, each with unique hover states and internal layouts? One agent per card variant plus one for the section wrapper. When in doubt, make it smaller.
|
|
45
|
+
|
|
46
|
+
**Complexity budget rule:** If a builder prompt exceeds ~150 lines of spec content, the section is too complex for one agent. Break it into smaller pieces. This is a mechanical check — don't override it with "but it's all related."
|
|
47
|
+
|
|
48
|
+
### 3. Real Content, Real Assets
|
|
49
|
+
|
|
50
|
+
Extract the actual text, images, videos, and SVGs from the live site. This is a clone, not a mockup. Use `element.textContent`, download every `<img>` and `<video>`, extract inline `<svg>` elements as React components. The only time you generate content is when something is clearly server-generated and unique per session.
|
|
51
|
+
|
|
52
|
+
**Layered assets matter.** A section that looks like one image is often multiple layers — a background watercolor/gradient, a foreground UI mockup PNG, an overlay icon. Inspect each container's full DOM tree and enumerate ALL `<img>` elements and background images within it, including absolutely-positioned overlays.
|
|
53
|
+
|
|
54
|
+
### 4. Foundation First
|
|
55
|
+
|
|
56
|
+
Nothing can be built until the foundation exists: global CSS with the target site's design tokens (colors, fonts, spacing), TypeScript types for the content structures, and global assets (fonts, favicons). This is sequential and non-negotiable. Everything after this can be parallel.
|
|
57
|
+
|
|
58
|
+
### 5. Extract How It Looks AND How It Behaves
|
|
59
|
+
|
|
60
|
+
A website is not a screenshot — it's a living thing. Elements move, change, appear, and disappear in response to scrolling, hovering, clicking, resizing, and time. If you only extract the static CSS of each element, your clone will look right in a screenshot but feel dead when someone actually uses it.
|
|
61
|
+
|
|
62
|
+
For every element, extract its **appearance** (exact computed CSS via `getComputedStyle()`) AND its **behavior** (what changes, what triggers the change, and how the transition happens).
|
|
63
|
+
|
|
64
|
+
Examples of behaviors to watch for:
|
|
65
|
+
- Navbar that shrinks/changes background/gains shadow after scroll threshold
|
|
66
|
+
- Elements that animate into view on viewport entry (fade-up, slide-in, stagger)
|
|
67
|
+
- Sections with `scroll-snap-type`
|
|
68
|
+
- Parallax layers
|
|
69
|
+
- Hover state transitions (duration and easing matter)
|
|
70
|
+
- Dropdowns/modals/accordions with enter/exit animations
|
|
71
|
+
- Auto-playing carousels
|
|
72
|
+
- Tabbed/pill content that cycles
|
|
73
|
+
- Scroll-driven tab/accordion switching (IntersectionObserver, NOT click handlers)
|
|
74
|
+
- Smooth scroll libraries (Lenis, Locomotive Scroll)
|
|
75
|
+
|
|
76
|
+
### 6. Identify the Interaction Model Before Building
|
|
77
|
+
|
|
78
|
+
This is the single most expensive mistake in cloning: building a click-based UI when the original is scroll-driven, or vice versa.
|
|
79
|
+
|
|
80
|
+
How to determine this:
|
|
81
|
+
1. **Don't click first.** Scroll through the section slowly and observe if things change on their own as you scroll.
|
|
82
|
+
2. If they do, it's scroll-driven. Extract the mechanism.
|
|
83
|
+
3. If nothing changes on scroll, THEN click/hover to test for click/hover-driven interactivity.
|
|
84
|
+
4. Document the interaction model explicitly in the component spec.
|
|
85
|
+
|
|
86
|
+
### 7. Extract Every State, Not Just the Default
|
|
87
|
+
|
|
88
|
+
For tabbed/stateful content: click each tab via Chrome MCP and extract content per state. For scroll-dependent elements: capture at scroll position 0 and after crossing the trigger threshold.
|
|
89
|
+
|
|
90
|
+
### 8. Spec Files Are the Source of Truth
|
|
91
|
+
|
|
92
|
+
Every component gets a specification file in `docs/research/components/` BEFORE any builder is dispatched. The builder receives the spec file contents inline in its prompt — the file also persists as an auditable artifact.
|
|
93
|
+
|
|
94
|
+
### 9. Build Must Always Compile
|
|
95
|
+
|
|
96
|
+
Every builder agent must verify `npx tsc --noEmit` passes before finishing. After merging worktrees, you verify `npm run build` passes.
|
|
97
|
+
|
|
98
|
+
## Phase 1: Reconnaissance
|
|
99
|
+
|
|
100
|
+
Navigate to the target URL with Chrome MCP.
|
|
101
|
+
|
|
102
|
+
### Screenshots
|
|
103
|
+
- Take **full-page screenshots** at desktop (1440px) and mobile (390px) viewports
|
|
104
|
+
- Save to `docs/design-references/` with descriptive names
|
|
105
|
+
|
|
106
|
+
### Global Extraction
|
|
107
|
+
Extract before anything else:
|
|
108
|
+
|
|
109
|
+
**Fonts** — Inspect `<link>` tags for Google Fonts or self-hosted fonts. Check computed `font-family` on key elements. Configure in `src/app/layout.tsx` using `next/font`.
|
|
110
|
+
|
|
111
|
+
**Colors** — Extract color palette from computed styles. Update `src/app/globals.css` with the target's actual colors.
|
|
112
|
+
|
|
113
|
+
**Favicons & Meta** — Download to `public/seo/` and update `layout.tsx` metadata.
|
|
114
|
+
|
|
115
|
+
**Global UI patterns** — Custom scrollbar, scroll-snap on page container, global keyframes, backdrop filters, smooth scroll libraries.
|
|
116
|
+
|
|
117
|
+
### Mandatory Interaction Sweep
|
|
118
|
+
|
|
119
|
+
**Scroll sweep:** Scroll the page slowly from top to bottom. Record header changes, viewport animations, auto-switching sidebars, scroll-snap points, smooth scroll libraries.
|
|
120
|
+
|
|
121
|
+
**Click sweep:** Click every element that looks interactive.
|
|
122
|
+
|
|
123
|
+
**Hover sweep:** Hover over every interactive element.
|
|
124
|
+
|
|
125
|
+
**Responsive sweep:** Test at 1440px, 768px, 390px. Note layout changes at each breakpoint.
|
|
126
|
+
|
|
127
|
+
Save findings to `docs/research/BEHAVIORS.md`.
|
|
128
|
+
|
|
129
|
+
### Page Topology
|
|
130
|
+
Map every distinct section from top to bottom. Give each a working name. Save as `docs/research/PAGE_TOPOLOGY.md`.
|
|
131
|
+
|
|
132
|
+
## Phase 2: Foundation Build
|
|
133
|
+
|
|
134
|
+
Sequential. Do it yourself:
|
|
135
|
+
|
|
136
|
+
1. **Update fonts** in `layout.tsx`
|
|
137
|
+
2. **Update globals.css** with target's color tokens, spacing, keyframes, scroll behaviors
|
|
138
|
+
3. **Create TypeScript interfaces** in `src/types/`
|
|
139
|
+
4. **Extract SVG icons** as React components in `src/components/icons.tsx`
|
|
140
|
+
5. **Download global assets** via `scripts/download-assets.mjs`
|
|
141
|
+
6. Verify: `npm run build` passes
|
|
142
|
+
|
|
143
|
+
### Asset Discovery Script
|
|
144
|
+
|
|
145
|
+
Run via Chrome MCP:
|
|
146
|
+
|
|
147
|
+
```javascript
|
|
148
|
+
JSON.stringify({
|
|
149
|
+
images: [...document.querySelectorAll('img')].map(img => ({
|
|
150
|
+
src: img.src || img.currentSrc,
|
|
151
|
+
alt: img.alt,
|
|
152
|
+
width: img.naturalWidth,
|
|
153
|
+
height: img.naturalHeight,
|
|
154
|
+
parentClasses: img.parentElement?.className,
|
|
155
|
+
position: getComputedStyle(img).position,
|
|
156
|
+
zIndex: getComputedStyle(img).zIndex
|
|
157
|
+
})),
|
|
158
|
+
videos: [...document.querySelectorAll('video')].map(v => ({
|
|
159
|
+
src: v.src || v.querySelector('source')?.src,
|
|
160
|
+
poster: v.poster,
|
|
161
|
+
autoplay: v.autoplay, loop: v.loop, muted: v.muted
|
|
162
|
+
})),
|
|
163
|
+
backgroundImages: [...document.querySelectorAll('*')].filter(el => {
|
|
164
|
+
const bg = getComputedStyle(el).backgroundImage;
|
|
165
|
+
return bg && bg !== 'none';
|
|
166
|
+
}).map(el => ({
|
|
167
|
+
url: getComputedStyle(el).backgroundImage,
|
|
168
|
+
element: el.tagName + '.' + el.className?.split(' ')[0]
|
|
169
|
+
})),
|
|
170
|
+
fonts: [...new Set([...document.querySelectorAll('*')].slice(0, 200).map(el => getComputedStyle(el).fontFamily))],
|
|
171
|
+
favicons: [...document.querySelectorAll('link[rel*="icon"]')].map(l => ({ href: l.href, sizes: l.sizes?.toString() }))
|
|
172
|
+
});
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
## Phase 3: Component Specification & Dispatch
|
|
176
|
+
|
|
177
|
+
For each section (top to bottom): **extract → write spec file → dispatch builders**.
|
|
178
|
+
|
|
179
|
+
### Step 1: Extract
|
|
180
|
+
|
|
181
|
+
1. **Screenshot** the section in isolation
|
|
182
|
+
2. **Extract CSS** via this script (replace SELECTOR):
|
|
183
|
+
|
|
184
|
+
```javascript
|
|
185
|
+
(function(selector) {
|
|
186
|
+
const el = document.querySelector(selector);
|
|
187
|
+
if (!el) return JSON.stringify({ error: 'Element not found: ' + selector });
|
|
188
|
+
const props = [
|
|
189
|
+
'fontSize','fontWeight','fontFamily','lineHeight','letterSpacing','color',
|
|
190
|
+
'textTransform','textDecoration','backgroundColor','background',
|
|
191
|
+
'padding','paddingTop','paddingRight','paddingBottom','paddingLeft',
|
|
192
|
+
'margin','marginTop','marginRight','marginBottom','marginLeft',
|
|
193
|
+
'width','height','maxWidth','minWidth','maxHeight','minHeight',
|
|
194
|
+
'display','flexDirection','justifyContent','alignItems','gap',
|
|
195
|
+
'gridTemplateColumns','gridTemplateRows',
|
|
196
|
+
'borderRadius','border','borderTop','borderBottom','borderLeft','borderRight',
|
|
197
|
+
'boxShadow','overflow','overflowX','overflowY',
|
|
198
|
+
'position','top','right','bottom','left','zIndex',
|
|
199
|
+
'opacity','transform','transition','cursor',
|
|
200
|
+
'objectFit','objectPosition','mixBlendMode','filter','backdropFilter',
|
|
201
|
+
'whiteSpace','textOverflow','WebkitLineClamp'
|
|
202
|
+
];
|
|
203
|
+
function extractStyles(element) {
|
|
204
|
+
const cs = getComputedStyle(element);
|
|
205
|
+
const styles = {};
|
|
206
|
+
props.forEach(p => {
|
|
207
|
+
const v = cs[p];
|
|
208
|
+
if (v && v !== 'none' && v !== 'normal' && v !== 'auto' && v !== '0px' && v !== 'rgba(0, 0, 0, 0)') styles[p] = v;
|
|
209
|
+
});
|
|
210
|
+
return styles;
|
|
211
|
+
}
|
|
212
|
+
function walk(element, depth) {
|
|
213
|
+
if (depth > 4) return null;
|
|
214
|
+
const children = [...element.children];
|
|
215
|
+
return {
|
|
216
|
+
tag: element.tagName.toLowerCase(),
|
|
217
|
+
classes: element.className?.toString().split(' ').slice(0, 5).join(' '),
|
|
218
|
+
text: element.childNodes.length === 1 && element.childNodes[0].nodeType === 3 ? element.textContent.trim().slice(0, 200) : null,
|
|
219
|
+
styles: extractStyles(element),
|
|
220
|
+
images: element.tagName === 'IMG' ? { src: element.src, alt: element.alt, naturalWidth: element.naturalWidth, naturalHeight: element.naturalHeight } : null,
|
|
221
|
+
childCount: children.length,
|
|
222
|
+
children: children.slice(0, 20).map(c => walk(c, depth + 1)).filter(Boolean)
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
return JSON.stringify(walk(el, 0), null, 2);
|
|
226
|
+
})('SELECTOR');
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
3. **Extract multi-state styles** — capture before AND after trigger states
|
|
230
|
+
4. **Extract real content** — all text, alt, aria labels
|
|
231
|
+
5. **Identify assets** — which downloaded images/videos/icons
|
|
232
|
+
6. **Assess complexity** — split if necessary
|
|
233
|
+
|
|
234
|
+
### Step 2: Write Component Spec File
|
|
235
|
+
|
|
236
|
+
Template at `docs/research/components/<component-name>.spec.md`:
|
|
237
|
+
|
|
238
|
+
```markdown
|
|
239
|
+
# <ComponentName> Specification
|
|
240
|
+
|
|
241
|
+
## Overview
|
|
242
|
+
- **Target file:** `src/components/<ComponentName>.tsx`
|
|
243
|
+
- **Screenshot:** `docs/design-references/<screenshot-name>.png`
|
|
244
|
+
- **Interaction model:** <static | click-driven | scroll-driven | time-driven>
|
|
245
|
+
|
|
246
|
+
## DOM Structure
|
|
247
|
+
<hierarchy>
|
|
248
|
+
|
|
249
|
+
## Computed Styles (exact values)
|
|
250
|
+
### Container
|
|
251
|
+
- display, padding, maxWidth, etc.
|
|
252
|
+
|
|
253
|
+
### <Child element>
|
|
254
|
+
- every relevant property
|
|
255
|
+
|
|
256
|
+
## States & Behaviors
|
|
257
|
+
### <Behavior name>
|
|
258
|
+
- **Trigger:** <exact mechanism>
|
|
259
|
+
- **State A (before):** CSS values
|
|
260
|
+
- **State B (after):** CSS values
|
|
261
|
+
- **Transition:** transition CSS
|
|
262
|
+
- **Implementation approach:** <CSS transition | IntersectionObserver | etc.>
|
|
263
|
+
|
|
264
|
+
## Assets
|
|
265
|
+
- Background/overlay images with paths
|
|
266
|
+
- Icons used from icons.tsx
|
|
267
|
+
|
|
268
|
+
## Text Content (verbatim)
|
|
269
|
+
<copy-pasted from live site>
|
|
270
|
+
|
|
271
|
+
## Responsive Behavior
|
|
272
|
+
- Desktop (1440px): <layout>
|
|
273
|
+
- Tablet (768px): <changes>
|
|
274
|
+
- Mobile (390px): <changes>
|
|
275
|
+
- Breakpoint: ~<N>px
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
### Step 3: Dispatch Builders
|
|
279
|
+
|
|
280
|
+
**Simple section** (1-2 sub-components): One builder agent.
|
|
281
|
+
**Complex section** (3+ sub-components): Break up. One agent per sub-component + one for wrapper.
|
|
282
|
+
|
|
283
|
+
Each builder receives:
|
|
284
|
+
- Full spec file contents inline
|
|
285
|
+
- Path to section screenshot
|
|
286
|
+
- Which shared components to import
|
|
287
|
+
- Target file path
|
|
288
|
+
- Instruction to verify `npx tsc --noEmit`
|
|
289
|
+
|
|
290
|
+
**Don't wait** — as soon as one builder is dispatched, move to next section extraction.
|
|
291
|
+
|
|
292
|
+
### Step 4: Merge
|
|
293
|
+
|
|
294
|
+
As agents complete: merge worktree branches, verify build passes, fix conflicts intelligently.
|
|
295
|
+
|
|
296
|
+
## Phase 4: Page Assembly
|
|
297
|
+
|
|
298
|
+
Wire everything together in `src/app/page.tsx`:
|
|
299
|
+
- Import all section components
|
|
300
|
+
- Implement page-level layout (scroll containers, z-index)
|
|
301
|
+
- Connect real content to component props
|
|
302
|
+
- Implement page-level behaviors (scroll-snap, smooth scroll, theme transitions)
|
|
303
|
+
- Verify `npm run build` passes
|
|
304
|
+
|
|
305
|
+
## Phase 5: Visual QA Diff
|
|
306
|
+
|
|
307
|
+
Take side-by-side screenshots with original. Compare section by section at 1440px AND 390px. For each discrepancy: re-extract, update spec, fix component. Test all interactive behaviors.
|
|
308
|
+
|
|
309
|
+
## Pre-Dispatch Checklist
|
|
310
|
+
|
|
311
|
+
Before dispatching ANY builder:
|
|
312
|
+
- [ ] Spec file written with ALL sections filled
|
|
313
|
+
- [ ] Every CSS value is from `getComputedStyle()`, not estimated
|
|
314
|
+
- [ ] Interaction model identified and documented
|
|
315
|
+
- [ ] All states captured (not just default)
|
|
316
|
+
- [ ] Scroll/hover triggers with before/after/transition recorded
|
|
317
|
+
- [ ] All images identified including overlays
|
|
318
|
+
- [ ] Responsive behavior documented
|
|
319
|
+
- [ ] Text content verbatim
|
|
320
|
+
- [ ] Builder prompt ≤150 lines
|
|
321
|
+
|
|
322
|
+
## Output Format
|
|
323
|
+
|
|
324
|
+
- Every builder dispatches with an inline spec (not a file reference)
|
|
325
|
+
- Every commit keeps `npm run build` green
|
|
326
|
+
- Final report structure:
|
|
327
|
+
- Total sections built: N
|
|
328
|
+
- Total components created: N
|
|
329
|
+
- Total spec files written: N (must match components)
|
|
330
|
+
- Total assets downloaded: N
|
|
331
|
+
- Build status: PASS/FAIL
|
|
332
|
+
- Visual QA discrepancies: list
|
|
333
|
+
- Do NOT include: vague status like "mostly done", builders dispatched without spec files, or estimated CSS values
|
|
334
|
+
- Do NOT merge with red builds
|
|
335
|
+
- Do NOT skip responsive extraction
|
|
336
|
+
|
|
337
|
+
## Examples
|
|
338
|
+
|
|
339
|
+
### Happy Path
|
|
340
|
+
**Input:** "clone https://linear.app"
|
|
341
|
+
|
|
342
|
+
**Expected behavior:**
|
|
343
|
+
1. Pre-flight: verify Chrome MCP, base Next.js+shadcn scaffold
|
|
344
|
+
2. Reconnaissance: full-page screenshots, global extraction (fonts/colors/favicons), interaction sweep
|
|
345
|
+
3. Foundation build: update layout.tsx fonts, globals.css colors, icons.tsx, download assets
|
|
346
|
+
4. For each section top-to-bottom: extract CSS via getComputedStyle, write spec file, dispatch builder in worktree
|
|
347
|
+
5. Merge branches as builders complete, keep build green
|
|
348
|
+
6. Visual QA diff at desktop + mobile
|
|
349
|
+
7. Report with component counts, asset counts, build status
|
|
350
|
+
|
|
351
|
+
### Edge Case: Missing Chrome MCP
|
|
352
|
+
**Input:** "clone this site: https://example.com"
|
|
353
|
+
|
|
354
|
+
**Expected behavior:** STOP immediately. Respond: "Chrome MCP not available. Enable it first — this skill requires browser automation to extract computed styles and screenshots. Without it, I'd be guessing from HTML which produces bad clones."
|
|
355
|
+
|
|
356
|
+
### Edge Case: Scroll-Driven Site Mistaken for Click-Driven
|
|
357
|
+
**Input:** User asks to clone a site with scroll-driven tabs
|
|
358
|
+
|
|
359
|
+
**Expected behavior:** During interaction sweep, scroll BEFORE clicking. If content switches on scroll, document as "INTERACTION MODEL: scroll-driven with IntersectionObserver". Do NOT build click-based tabs.
|
|
360
|
+
|
|
361
|
+
### Edge Case: Builder Prompt Too Long
|
|
362
|
+
**Input:** (Extracting a complex section with 4 card variants)
|
|
363
|
+
|
|
364
|
+
**Expected behavior:** Check the 150-line rule. If spec exceeds it, split: one builder per card variant + one for the section wrapper. Do NOT override with "it's all related."
|
|
365
|
+
|
|
366
|
+
### Negative Test
|
|
367
|
+
**Input:** "Design a new landing page for our Rihal product"
|
|
368
|
+
|
|
369
|
+
**Expected behavior:** Stay silent. This is original design work — not cloning. Redirect: "This needs original design — invoke Layla (rihal-agent-layla) for UX or Bilal (rihal-agent-bilal) for direct build. I clone existing sites, not create new ones."
|
|
370
|
+
|
|
371
|
+
## What NOT to Do
|
|
372
|
+
|
|
373
|
+
- Don't build click-based tabs when the original is scroll-driven
|
|
374
|
+
- Don't extract only the default state of tabbed content
|
|
375
|
+
- Don't miss overlay/layered images
|
|
376
|
+
- Don't build HTML mockups for content that's actually videos/Lottie/canvas
|
|
377
|
+
- Don't approximate CSS classes — extract exact values
|
|
378
|
+
- Don't build monolithic commits
|
|
379
|
+
- Don't reference external docs from builder prompts — inline everything
|
|
380
|
+
- Don't skip asset extraction
|
|
381
|
+
- Don't give a builder too much scope
|
|
382
|
+
- Don't bundle unrelated sections into one agent
|
|
383
|
+
- Don't skip responsive extraction at 1440/768/390
|
|
384
|
+
- Don't forget smooth scroll libraries (Lenis, Locomotive)
|
|
385
|
+
- Don't dispatch builders without a spec file
|
|
386
|
+
|
|
387
|
+
## Completion Report
|
|
388
|
+
|
|
389
|
+
- Total sections built: N
|
|
390
|
+
- Total components created: N
|
|
391
|
+
- Total spec files written: N
|
|
392
|
+
- Total assets downloaded (images/videos/SVGs/fonts): N
|
|
393
|
+
- Build status: `npm run build` result
|
|
394
|
+
- Visual QA results: any remaining discrepancies
|
|
395
|
+
- Any known gaps or limitations
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: rihal-distillator
|
|
3
|
+
description: Lossless LLM-optimized compression of source documents. Use when the user requests to 'distill documents' or 'create a distillate'.
|
|
4
|
+
argument-hint: "[to create provide input paths] [--validate distillate-path to confirm distillate is lossless and optimized]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Distillator: A Document Distillation Engine
|
|
8
|
+
|
|
9
|
+
## Overview
|
|
10
|
+
|
|
11
|
+
This skill produces hyper-compressed, token-efficient documents (distillates) from any set of source documents. A distillate preserves every fact, decision, constraint, and relationship from the sources while stripping all overhead that humans need and LLMs don't. Act as an information extraction and compression specialist. The output is a single dense document (or semantically-split set) that a downstream LLM workflow can consume as sole context input without information loss.
|
|
12
|
+
|
|
13
|
+
This is a compression task, not a summarization task. Summaries are lossy. Distillates are lossless compression optimized for LLM consumption.
|
|
14
|
+
|
|
15
|
+
## On Activation
|
|
16
|
+
|
|
17
|
+
1. **Validate inputs.** The caller must provide:
|
|
18
|
+
- **source_documents** (required) — One or more file paths, folder paths, or glob patterns to distill
|
|
19
|
+
- **downstream_consumer** (optional) — What workflow/agent consumes this distillate (e.g., "PRD creation", "architecture design"). When provided, use it to judge signal vs noise. When omitted, preserve everything.
|
|
20
|
+
- **token_budget** (optional) — Approximate target size. When provided and the distillate would exceed it, trigger semantic splitting.
|
|
21
|
+
- **output_path** (optional) — Where to save. When omitted, save adjacent to the primary source document with `-distillate.md` suffix.
|
|
22
|
+
- **--validate** (flag) — Run round-trip reconstruction test after producing the distillate.
|
|
23
|
+
|
|
24
|
+
2. **Route** — proceed to Stage 1.
|
|
25
|
+
|
|
26
|
+
## Stages
|
|
27
|
+
|
|
28
|
+
| # | Stage | Purpose |
|
|
29
|
+
|---|-------|---------|
|
|
30
|
+
| 1 | Analyze | Run analysis script, determine routing and splitting |
|
|
31
|
+
| 2 | Compress | Spawn compressor agent(s) to produce the distillate |
|
|
32
|
+
| 3 | Verify & Output | Completeness check, format check, save output |
|
|
33
|
+
| 4 | Round-Trip Validate | (--validate only) Reconstruct and diff against originals |
|
|
34
|
+
|
|
35
|
+
### Stage 1: Analyze
|
|
36
|
+
|
|
37
|
+
Run `scripts/analyze_sources.py --help` then run it with the source paths. Use its routing recommendation and grouping output to drive Stage 2. Do NOT read the source documents yourself.
|
|
38
|
+
|
|
39
|
+
### Stage 2: Compress
|
|
40
|
+
|
|
41
|
+
**Single mode** (routing = `"single"`, ≤3 files, ≤15K estimated tokens):
|
|
42
|
+
|
|
43
|
+
Spawn one subagent using `agents/distillate-compressor.md` with all source file paths.
|
|
44
|
+
|
|
45
|
+
**Fan-out mode** (routing = `"fan-out"`):
|
|
46
|
+
|
|
47
|
+
1. Spawn one compressor subagent per group from the analysis output. Each compressor receives only its group's file paths and produces an intermediate distillate.
|
|
48
|
+
|
|
49
|
+
2. After all compressors return, spawn one final **merge compressor** subagent using `agents/distillate-compressor.md`. Pass it the intermediate distillate contents as its input (not the original files). Its job is cross-group deduplication, thematic regrouping, and final compression.
|
|
50
|
+
|
|
51
|
+
3. Clean up intermediate distillate content (it exists only in memory, not saved to disk).
|
|
52
|
+
|
|
53
|
+
**Graceful degradation:** If subagent spawning is unavailable, read the source documents and perform the compression work directly using the same instructions from `agents/distillate-compressor.md`. For fan-out, process groups sequentially then merge.
|
|
54
|
+
|
|
55
|
+
The compressor returns a structured JSON result containing the distillate content, source headings, named entities, and token estimate.
|
|
56
|
+
|
|
57
|
+
### Stage 3: Verify & Output
|
|
58
|
+
|
|
59
|
+
After the compressor (or merge compressor) returns:
|
|
60
|
+
|
|
61
|
+
1. **Completeness check.** Using the headings and named entities list returned by the compressor, verify each appears in the distillate content. If gaps are found, send them back to the compressor for a targeted fix pass — not a full recompression. Limit to 2 fix passes maximum.
|
|
62
|
+
|
|
63
|
+
2. **Format check.** Verify the output follows distillate format rules:
|
|
64
|
+
- No prose paragraphs (only bullets)
|
|
65
|
+
- No decorative formatting
|
|
66
|
+
- No repeated information
|
|
67
|
+
- Each bullet is self-contained
|
|
68
|
+
- Themes are clearly delineated with `##` headings
|
|
69
|
+
|
|
70
|
+
3. **Determine output format.** Using the split prediction from Stage 1 and actual distillate size:
|
|
71
|
+
|
|
72
|
+
**Single distillate** (≤~5,000 tokens or token_budget not exceeded):
|
|
73
|
+
|
|
74
|
+
Save as a single file with frontmatter:
|
|
75
|
+
|
|
76
|
+
```yaml
|
|
77
|
+
---
|
|
78
|
+
type: rihal-distillate
|
|
79
|
+
sources:
|
|
80
|
+
- "{relative path to source file 1}"
|
|
81
|
+
- "{relative path to source file 2}"
|
|
82
|
+
downstream_consumer: "{consumer or 'general'}"
|
|
83
|
+
created: "{date}"
|
|
84
|
+
token_estimate: {approximate token count}
|
|
85
|
+
parts: 1
|
|
86
|
+
---
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
**Split distillate** (>~5,000 tokens, or token_budget requires it):
|
|
90
|
+
|
|
91
|
+
Create a folder `{base-name}-distillate/` containing:
|
|
92
|
+
|
|
93
|
+
```
|
|
94
|
+
{base-name}-distillate/
|
|
95
|
+
├── _index.md # Orientation, cross-cutting items, section manifest
|
|
96
|
+
├── 01-{topic-slug}.md # Self-contained section
|
|
97
|
+
├── 02-{topic-slug}.md
|
|
98
|
+
└── 03-{topic-slug}.md
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
The `_index.md` contains:
|
|
102
|
+
- Frontmatter with sources (relative paths from the distillate folder to the originals)
|
|
103
|
+
- 3-5 bullet orientation (what was distilled, from what)
|
|
104
|
+
- Section manifest: each section's filename + 1-line description
|
|
105
|
+
- Cross-cutting items that span multiple sections
|
|
106
|
+
|
|
107
|
+
Each section file is self-contained — loadable independently. Include a 1-line context header: "This section covers [topic]. Part N of M."
|
|
108
|
+
|
|
109
|
+
Source paths in frontmatter must be relative to the distillate's location.
|
|
110
|
+
|
|
111
|
+
4. **Measure distillate.** Run `scripts/analyze_sources.py` on the final distillate file(s) to get accurate token counts for the output. Use the `total_estimated_tokens` from this analysis as `distillate_total_tokens`.
|
|
112
|
+
|
|
113
|
+
5. **Report results.** Always return structured JSON output:
|
|
114
|
+
|
|
115
|
+
```json
|
|
116
|
+
{
|
|
117
|
+
"status": "complete",
|
|
118
|
+
"distillate": "{path or folder path}",
|
|
119
|
+
"section_distillates": ["{path1}", "{path2}"] or null,
|
|
120
|
+
"source_total_tokens": N,
|
|
121
|
+
"distillate_total_tokens": N,
|
|
122
|
+
"compression_ratio": "X:1",
|
|
123
|
+
"source_documents": ["{path1}", "{path2}"],
|
|
124
|
+
"completeness_check": "pass" or "pass_with_additions"
|
|
125
|
+
}
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Where `source_total_tokens` is from the Stage 1 analysis and `distillate_total_tokens` is from step 4. The `compression_ratio` is `source_total_tokens / distillate_total_tokens` formatted as "X:1" (e.g., "3.2:1").
|
|
129
|
+
|
|
130
|
+
6. If `--validate` flag was set, proceed to Stage 4. Otherwise, done.
|
|
131
|
+
|
|
132
|
+
### Stage 4: Round-Trip Validation (--validate only)
|
|
133
|
+
|
|
134
|
+
This stage proves the distillate is lossless by reconstructing source documents from the distillate alone. Use for critical documents where information loss is unacceptable, or as a quality gate for high-stakes downstream workflows. Not for routine use — it adds significant token cost.
|
|
135
|
+
|
|
136
|
+
1. **Spawn the reconstructor agent** using `agents/round-trip-reconstructor.md`. Pass it ONLY the distillate file path (or `_index.md` path for split distillates) — it must NOT have access to the original source documents.
|
|
137
|
+
|
|
138
|
+
For split distillates, spawn one reconstructor per section in parallel. Each receives its section file plus the `_index.md` for cross-cutting context.
|
|
139
|
+
|
|
140
|
+
**Graceful degradation:** If subagent spawning is unavailable, this stage cannot be performed by the main agent (it has already seen the originals). Report that round-trip validation requires subagent support and skip.
|
|
141
|
+
|
|
142
|
+
2. **Receive reconstructions.** The reconstructor returns reconstruction file paths saved adjacent to the distillate.
|
|
143
|
+
|
|
144
|
+
3. **Perform semantic diff.** Read both the original source documents and the reconstructions. For each section of the original, assess:
|
|
145
|
+
- Is the core information present in the reconstruction?
|
|
146
|
+
- Are specific details preserved (numbers, names, decisions)?
|
|
147
|
+
- Are relationships and rationale intact?
|
|
148
|
+
- Did the reconstruction add anything not in the original? (indicates hallucination filling gaps)
|
|
149
|
+
|
|
150
|
+
4. **Produce validation report** saved adjacent to the distillate as `-validation-report.md`:
|
|
151
|
+
|
|
152
|
+
```markdown
|
|
153
|
+
---
|
|
154
|
+
type: distillate-validation
|
|
155
|
+
distillate: "{distillate path}"
|
|
156
|
+
sources: ["{source paths}"]
|
|
157
|
+
created: "{date}"
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## Validation Summary
|
|
161
|
+
- Status: PASS | PASS_WITH_WARNINGS | FAIL
|
|
162
|
+
- Information preserved: {percentage estimate}
|
|
163
|
+
- Gaps found: {count}
|
|
164
|
+
- Hallucinations detected: {count}
|
|
165
|
+
|
|
166
|
+
## Gaps (information in originals but missing from reconstruction)
|
|
167
|
+
- {gap description} — Source: {which original}, Section: {where}
|
|
168
|
+
|
|
169
|
+
## Hallucinations (information in reconstruction not traceable to originals)
|
|
170
|
+
- {hallucination description} — appears to fill gap in: {section}
|
|
171
|
+
|
|
172
|
+
## Possible Gap Markers (flagged by reconstructor)
|
|
173
|
+
- {marker description}
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
5. **If gaps are found**, offer to run a targeted fix pass on the distillate — adding the missing information without full recompression. Limit to 2 fix passes maximum.
|
|
177
|
+
|
|
178
|
+
## Output Format
|
|
179
|
+
|
|
180
|
+
Structured JSON result:
|
|
181
|
+
```json
|
|
182
|
+
{
|
|
183
|
+
"status": "complete",
|
|
184
|
+
"distillate": "path/to/distillate.md",
|
|
185
|
+
"compression_ratio": "3.2:1",
|
|
186
|
+
"source_total_tokens": 15000,
|
|
187
|
+
"distillate_total_tokens": 4688
|
|
188
|
+
}
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
## Examples
|
|
192
|
+
|
|
193
|
+
### Happy path
|
|
194
|
+
**User:** "distill ./docs/architecture.md ./docs/decisions.md"
|
|
195
|
+
**Result:** Analyzes sources → single-mode compression → saves `architecture-distillate.md` → reports 3.2:1 ratio
|
|
196
|
+
|
|
197
|
+
### Edge case
|
|
198
|
+
**User:** "distill ./docs/ --validate"
|
|
199
|
+
**Result:** Fan-out mode for large folder → merge pass → round-trip validation via reconstructor agent
|
|
200
|
+
|
|
201
|
+
### Negative boundary
|
|
202
|
+
**User:** "summarize this meeting"
|
|
203
|
+
**Result:** Distillation is lossless compression, not summarization. If user wants a summary, clarify the difference or route to a writing skill
|
|
204
|
+
|
|
205
|
+
6. **Clean up** — delete the temporary reconstruction files after the report is generated.
|