@xgent-ai/skills 0.1.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +124 -4
- package/bin/xgent-skills.js +561 -4
- package/package.json +7 -3
- package/skills/agi-mode/SKILL.md +225 -0
- package/skills/agi-mode/evals/baseline-coverage.md +96 -0
- package/skills/agi-mode/evals/scenarios.md +331 -0
- package/skills/agi-mode/evals/test_check_evidence.py +141 -0
- package/skills/agi-mode/playbooks/arena.md +47 -0
- package/skills/agi-mode/playbooks/authoring-a-skill.md +26 -0
- package/skills/agi-mode/playbooks/autonomous-run.md +39 -0
- package/skills/agi-mode/playbooks/bug-fix.md +27 -0
- package/skills/agi-mode/playbooks/design-prototype.md +41 -0
- package/skills/agi-mode/playbooks/eval.md +72 -0
- package/skills/agi-mode/playbooks/feature.md +26 -0
- package/skills/agi-mode/playbooks/forensics.md +31 -0
- package/skills/agi-mode/playbooks/hillclimb.md +73 -0
- package/skills/agi-mode/playbooks/investigation.md +29 -0
- package/skills/agi-mode/playbooks/migration-refactoring.md +27 -0
- package/skills/agi-mode/playbooks/optimization.md +27 -0
- package/skills/agi-mode/playbooks/pr-lifecycle.md +38 -0
- package/skills/agi-mode/playbooks/program.md +57 -0
- package/skills/agi-mode/playbooks/reflection.md +41 -0
- package/skills/agi-mode/playbooks/resource-cleanup.md +24 -0
- package/skills/agi-mode/playbooks/review.md +27 -0
- package/skills/agi-mode/playbooks/session-handoff.md +37 -0
- package/skills/agi-mode/playbooks/shipping.md +35 -0
- package/skills/agi-mode/playbooks/ui-delivery.md +34 -0
- package/skills/agi-mode/playbooks/unblock.md +54 -0
- package/skills/agi-mode/principles/autonomous-decisions.md +21 -0
- package/skills/agi-mode/principles/behavioral-tests.md +21 -0
- package/skills/agi-mode/principles/boundary-discipline.md +21 -0
- package/skills/agi-mode/principles/bounded-convergence.md +21 -0
- package/skills/agi-mode/principles/build-leverage.md +21 -0
- package/skills/agi-mode/principles/challenge-premises.md +21 -0
- package/skills/agi-mode/principles/complete-migrations.md +21 -0
- package/skills/agi-mode/principles/context-as-state.md +21 -0
- package/skills/agi-mode/principles/critical-path-throughput.md +21 -0
- package/skills/agi-mode/principles/domain-models-and-types.md +23 -0
- package/skills/agi-mode/principles/evidence-lifetime.md +21 -0
- package/skills/agi-mode/principles/experience-first.md +21 -0
- package/skills/agi-mode/principles/explore-alternatives.md +21 -0
- package/skills/agi-mode/principles/falsifiable-verification.md +21 -0
- package/skills/agi-mode/principles/foundations-first.md +21 -0
- package/skills/agi-mode/principles/idempotent-effects.md +21 -0
- package/skills/agi-mode/principles/information-first.md +21 -0
- package/skills/agi-mode/principles/minimize-complexity.md +21 -0
- package/skills/agi-mode/principles/outcome-ownership.md +21 -0
- package/skills/agi-mode/principles/prove-real-outcomes.md +21 -0
- package/skills/agi-mode/principles/redesign-from-constraints.md +21 -0
- package/skills/agi-mode/principles/root-cause.md +21 -0
- package/skills/agi-mode/principles/state-ownership.md +21 -0
- package/skills/agi-mode/principles/structural-learning.md +21 -0
- package/skills/agi-mode/principles/verifiable-units.md +21 -0
- package/skills/agi-mode/references/continuity.md +75 -0
- package/skills/agi-mode/references/eval-protocol.md +71 -0
- package/skills/agi-mode/references/evidence-contract.md +57 -0
- package/skills/agi-mode/references/evolution-evidence.md +71 -0
- package/skills/agi-mode/references/experiments.md +82 -0
- package/skills/agi-mode/references/reflection/divergent-reviewer.md +45 -0
- package/skills/agi-mode/references/reflection/judgment-reviewer.md +44 -0
- package/skills/agi-mode/references/reflection/synthesizer.md +39 -0
- package/skills/agi-mode/references/reflection/tooling-reviewer.md +57 -0
- package/skills/agi-mode/references/skill-evolution.md +50 -0
- package/skills/agi-mode/scripts/check_evidence.py +147 -0
- package/skills/apply-code-review/SKILL.md +53 -0
- package/skills/apply-code-review/agents/openai.yaml +4 -0
- package/skills/apply-code-review/references/record-contract.md +77 -0
- package/skills/apply-doc-review/SKILL.md +79 -0
- package/skills/apply-doc-review/agents/openai.yaml +4 -0
- package/skills/apply-doc-review/references/disposition-contract.md +57 -0
- package/skills/archify/LICENSE +22 -0
- package/skills/archify/SKILL.md +137 -0
- package/skills/archify/THIRD_PARTY_NOTICES.md +69 -0
- package/skills/archify/assets/JetBrainsMono-OFL.txt +93 -0
- package/skills/archify/assets/template.html +14937 -0
- package/skills/archify/bin/archify.mjs +2139 -0
- package/skills/archify/bin/open-artifact.mjs +86 -0
- package/skills/archify/bin/preview.mjs +653 -0
- package/skills/archify/bin/visual-check.mjs +829 -0
- package/skills/archify/brand-marks/README.md +31 -0
- package/skills/archify/brand-marks/catalog.json +131 -0
- package/skills/archify/delta/architecture-delta.mjs +1232 -0
- package/skills/archify/examples/agent-run.lifecycle.json +60 -0
- package/skills/archify/examples/agent-tool-call.workflow.json +94 -0
- package/skills/archify/examples/async-job-roundtrip.sequence.json +61 -0
- package/skills/archify/examples/brand-aware-delivery.architecture.json +47 -0
- package/skills/archify/examples/cache-miss-request.sequence.json +82 -0
- package/skills/archify/examples/checkout-platform.base.architecture.json +31 -0
- package/skills/archify/examples/checkout-platform.head.architecture.json +31 -0
- package/skills/archify/examples/dataflow-product-analytics.html +15048 -0
- package/skills/archify/examples/deployment-release.lifecycle.json +49 -0
- package/skills/archify/examples/event-stream.dataflow.json +57 -0
- package/skills/archify/examples/incident-response.workflow.json +64 -0
- package/skills/archify/examples/lifecycle-agent-run.html +14983 -0
- package/skills/archify/examples/product-analytics.dataflow.json +76 -0
- package/skills/archify/examples/production-deployment.architecture.json +71 -0
- package/skills/archify/examples/release-delivery.workflow.json +62 -0
- package/skills/archify/examples/sequence-cache-miss-request.html +15063 -0
- package/skills/archify/examples/web-app-rendered.html +15012 -0
- package/skills/archify/examples/web-app.architecture.json +46 -0
- package/skills/archify/examples/workflow-agent-tool-call-rendered.html +15054 -0
- package/skills/archify/migrations/workflow-v2.mjs +279 -0
- package/skills/archify/package-lock.json +149 -0
- package/skills/archify/package.json +39 -0
- package/skills/archify/recipes/scenarios.mjs +391 -0
- package/skills/archify/references/authoring-contract.md +247 -0
- package/skills/archify/references/brand-marks.md +65 -0
- package/skills/archify/references/delivery-contract.md +138 -0
- package/skills/archify/references/viewer-runtime.md +45 -0
- package/skills/archify/renderers/architecture/grid.mjs +62 -0
- package/skills/archify/renderers/architecture/render-architecture.mjs +1078 -0
- package/skills/archify/renderers/dataflow/README.md +104 -0
- package/skills/archify/renderers/dataflow/render-dataflow.mjs +483 -0
- package/skills/archify/renderers/lifecycle/README.md +115 -0
- package/skills/archify/renderers/lifecycle/render-lifecycle.mjs +561 -0
- package/skills/archify/renderers/sequence/README.md +114 -0
- package/skills/archify/renderers/sequence/render-sequence.mjs +464 -0
- package/skills/archify/renderers/shared/brand-marks.mjs +563 -0
- package/skills/archify/renderers/shared/cli.mjs +218 -0
- package/skills/archify/renderers/shared/desktop-readability.mjs +26 -0
- package/skills/archify/renderers/shared/diagnostics.mjs +160 -0
- package/skills/archify/renderers/shared/engineering-profiles.mjs +157 -0
- package/skills/archify/renderers/shared/generated-brand-marks.mjs +2003 -0
- package/skills/archify/renderers/shared/generated-validators.mjs +13 -0
- package/skills/archify/renderers/shared/geometry.mjs +1423 -0
- package/skills/archify/renderers/shared/i18n.mjs +595 -0
- package/skills/archify/renderers/shared/layout-report.mjs +40 -0
- package/skills/archify/renderers/shared/legend.mjs +217 -0
- package/skills/archify/renderers/shared/output-path.mjs +340 -0
- package/skills/archify/renderers/shared/repository-evidence.mjs +239 -0
- package/skills/archify/renderers/shared/repository-location.mjs +58 -0
- package/skills/archify/renderers/shared/text-fit.mjs +49 -0
- package/skills/archify/renderers/shared/utils.mjs +232 -0
- package/skills/archify/renderers/shared/validator.mjs +86 -0
- package/skills/archify/renderers/workflow/README.md +223 -0
- package/skills/archify/renderers/workflow/render-workflow.mjs +35 -0
- package/skills/archify/renderers/workflow/workflow-compiler.mjs +4400 -0
- package/skills/archify/renderers/workflow/workflow-migration-geometry.mjs +144 -0
- package/skills/archify/schemas/README.md +211 -0
- package/skills/archify/schemas/architecture.schema.json +178 -0
- package/skills/archify/schemas/common.schema.json +115 -0
- package/skills/archify/schemas/dataflow.schema.json +243 -0
- package/skills/archify/schemas/lifecycle.schema.json +266 -0
- package/skills/archify/schemas/sequence.schema.json +223 -0
- package/skills/archify/schemas/workflow.schema.json +428 -0
- package/skills/archify/scripts/check-render-output.mjs +916 -0
- package/skills/archify/scripts/check-update.mjs +1667 -0
- package/skills/archify/scripts/generate-brand-marks.mjs +141 -0
- package/skills/archify/scripts/generate-validators.mjs +66 -0
- package/skills/archify/scripts/render-examples.mjs +26 -0
- package/skills/archify/scripts/update-contract.mjs +182 -0
- package/skills/archify/skill-release.json +10 -0
- package/skills/archify/test/adaptive-reader-layout.test.mjs +86 -0
- package/skills/archify/test/animation.test.mjs +179 -0
- package/skills/archify/test/architecture-compare-recovery.test.mjs +157 -0
- package/skills/archify/test/architecture-delta-markers.test.mjs +137 -0
- package/skills/archify/test/architecture-delta.test.mjs +705 -0
- package/skills/archify/test/artifact-receipt-flush.test.mjs +126 -0
- package/skills/archify/test/authored-reachability.test.mjs +95 -0
- package/skills/archify/test/authoring-safety-contract.test.mjs +54 -0
- package/skills/archify/test/automatic-port-spread.test.mjs +376 -0
- package/skills/archify/test/base-input-compatibility.test.mjs +42 -0
- package/skills/archify/test/brand-marks.test.mjs +678 -0
- package/skills/archify/test/chapter-delta-preview.test.mjs +157 -0
- package/skills/archify/test/chapter-handoff.test.mjs +97 -0
- package/skills/archify/test/chapter-rail.test.mjs +86 -0
- package/skills/archify/test/checkout-line-endings.test.mjs +72 -0
- package/skills/archify/test/ci-scope.test.mjs +59 -0
- package/skills/archify/test/clean-skill-staging.test.mjs +440 -0
- package/skills/archify/test/cli-output-types.test.mjs +201 -0
- package/skills/archify/test/cli.test.mjs +986 -0
- package/skills/archify/test/community-proof-intake.test.mjs +125 -0
- package/skills/archify/test/cursor-onboarding.test.mjs +74 -0
- package/skills/archify/test/degraded.test.mjs +161 -0
- package/skills/archify/test/delivery-contract.test.mjs +52 -0
- package/skills/archify/test/desktop-reader-browser.test.mjs +80 -0
- package/skills/archify/test/diagram-guide.test.mjs +92 -0
- package/skills/archify/test/engineering-profile.test.mjs +209 -0
- package/skills/archify/test/export-browser.test.mjs +305 -0
- package/skills/archify/test/export-cleanup-browser.test.mjs +294 -0
- package/skills/archify/test/finder-browser.test.mjs +274 -0
- package/skills/archify/test/finder.test.mjs +104 -0
- package/skills/archify/test/fixtures/automatic-routing-node-border-clearance.workflow.json +40 -0
- package/skills/archify/test/fixtures/fail-migration-cleanup.mjs +17 -0
- package/skills/archify/test/fixtures/issue-126/custom-widths.workflow.json +18 -0
- package/skills/archify/test/fixtures/issue-126/explicit-route.workflow.json +28 -0
- package/skills/archify/test/fixtures/issue-126/explicit-viewbox.workflow.json +19 -0
- package/skills/archify/test/fixtures/issue-126/labels.workflow.json +18 -0
- package/skills/archify/test/fixtures/v1-baseline/agent-run.lifecycle.json +64 -0
- package/skills/archify/test/fixtures/v1-baseline/agent-tool-call.workflow.json +88 -0
- package/skills/archify/test/fixtures/v1-baseline/cache-miss-request.sequence.json +75 -0
- package/skills/archify/test/fixtures/v1-baseline/event-stream.dataflow.json +57 -0
- package/skills/archify/test/fixtures/v1-baseline/product-analytics.dataflow.json +70 -0
- package/skills/archify/test/fixtures/v1-baseline/production-deployment.architecture.json +71 -0
- package/skills/archify/test/fixtures/v1-baseline/web-app.architecture.json +41 -0
- package/skills/archify/test/fixtures/v1-workflow-700x400.workflow.json +22 -0
- package/skills/archify/test/fixtures/v1-workflow-explicit-coordinates.workflow.json +47 -0
- package/skills/archify/test/focus-browser.test.mjs +226 -0
- package/skills/archify/test/gallery.test.mjs +130 -0
- package/skills/archify/test/generate-validators.test.mjs +59 -0
- package/skills/archify/test/generate-viewer.test.mjs +165 -0
- package/skills/archify/test/generated-artifact-xml.test.mjs +88 -0
- package/skills/archify/test/geometry.test.mjs +739 -0
- package/skills/archify/test/golden.mjs +207 -0
- package/skills/archify/test/grid.test.mjs +47 -0
- package/skills/archify/test/guide-page.test.mjs +85 -0
- package/skills/archify/test/guide.test.mjs +81 -0
- package/skills/archify/test/guided-views-browser.test.mjs +460 -0
- package/skills/archify/test/guided-views.test.mjs +144 -0
- package/skills/archify/test/helpers/desktop-browser.mjs +48 -0
- package/skills/archify/test/helpers/offline-fonts.mjs +76 -0
- package/skills/archify/test/helpers/viewer-click.mjs +72 -0
- package/skills/archify/test/helpers/xml.mjs +37 -0
- package/skills/archify/test/i18n.test.mjs +422 -0
- package/skills/archify/test/intent-trace-browser.test.mjs +284 -0
- package/skills/archify/test/intent-trace.test.mjs +111 -0
- package/skills/archify/test/landing.test.mjs +97 -0
- package/skills/archify/test/layout-rules.test.mjs +1498 -0
- package/skills/archify/test/legend-contract.test.mjs +404 -0
- package/skills/archify/test/motion-governor-browser.test.mjs +342 -0
- package/skills/archify/test/motion-governor.test.mjs +111 -0
- package/skills/archify/test/offline-font-browser.test.mjs +210 -0
- package/skills/archify/test/offline-self-containment.test.mjs +80 -0
- package/skills/archify/test/open-artifact.test.mjs +118 -0
- package/skills/archify/test/ordinary-model-floor.test.mjs +1052 -0
- package/skills/archify/test/output-path.test.mjs +587 -0
- package/skills/archify/test/presentation.test.mjs +71 -0
- package/skills/archify/test/preset-tryon.test.mjs +113 -0
- package/skills/archify/test/preview-contract.test.mjs +40 -0
- package/skills/archify/test/preview.test.mjs +530 -0
- package/skills/archify/test/proof-aperture.test.mjs +78 -0
- package/skills/archify/test/reach-share-card.test.mjs +149 -0
- package/skills/archify/test/reader-layout-browser.test.mjs +320 -0
- package/skills/archify/test/readme-showcase.test.mjs +319 -0
- package/skills/archify/test/real-repository-proof.test.mjs +209 -0
- package/skills/archify/test/relationship-direct-explorer.test.mjs +115 -0
- package/skills/archify/test/relationship-lens.test.mjs +128 -0
- package/skills/archify/test/relationship-permalink.test.mjs +130 -0
- package/skills/archify/test/relationship-pulse.test.mjs +122 -0
- package/skills/archify/test/release-identity.test.mjs +476 -0
- package/skills/archify/test/release-package-gates.test.mjs +750 -0
- package/skills/archify/test/render-output-checks.test.mjs +588 -0
- package/skills/archify/test/renderer-diagnostic-boundary.test.mjs +107 -0
- package/skills/archify/test/repair-receipt.test.mjs +181 -0
- package/skills/archify/test/repository-evidence-replacement.test.mjs +136 -0
- package/skills/archify/test/repository-evidence.test.mjs +605 -0
- package/skills/archify/test/repository-language-metadata.test.mjs +67 -0
- package/skills/archify/test/route-journey.test.mjs +125 -0
- package/skills/archify/test/route-probe-browser.test.mjs +363 -0
- package/skills/archify/test/route-probe.test.mjs +114 -0
- package/skills/archify/test/route-share-card.test.mjs +163 -0
- package/skills/archify/test/semantic-camera.test.mjs +88 -0
- package/skills/archify/test/semantic-flow.test.mjs +90 -0
- package/skills/archify/test/semantic-legend-gateway.test.mjs +156 -0
- package/skills/archify/test/semantic-lens-browser.test.mjs +372 -0
- package/skills/archify/test/semantic-lens.test.mjs +103 -0
- package/skills/archify/test/semantic-passport.test.mjs +99 -0
- package/skills/archify/test/semantic-radar.test.mjs +735 -0
- package/skills/archify/test/semantic-zoom.test.mjs +86 -0
- package/skills/archify/test/sequence-column-fit.test.mjs +137 -0
- package/skills/archify/test/settled-flow.test.mjs +97 -0
- package/skills/archify/test/share-card-export.test.mjs +132 -0
- package/skills/archify/test/site-language-continuity.test.mjs +569 -0
- package/skills/archify/test/site-language-integration.mjs +9 -0
- package/skills/archify/test/skill-metadata.test.mjs +84 -0
- package/skills/archify/test/stable-update-manifest.test.mjs +167 -0
- package/skills/archify/test/start-page.test.mjs +312 -0
- package/skills/archify/test/story-beat-navigator.test.mjs +103 -0
- package/skills/archify/test/story-carrier.test.mjs +90 -0
- package/skills/archify/test/story-director-strip.test.mjs +91 -0
- package/skills/archify/test/story-follow-camera.test.mjs +103 -0
- package/skills/archify/test/story-horizon.test.mjs +91 -0
- package/skills/archify/test/story-moment-link.test.mjs +93 -0
- package/skills/archify/test/story-shelf.test.mjs +84 -0
- package/skills/archify/test/story-trail.test.mjs +81 -0
- package/skills/archify/test/toolbar-polish.test.mjs +57 -0
- package/skills/archify/test/update-contract.test.mjs +133 -0
- package/skills/archify/test/update-notifier.test.mjs +3317 -0
- package/skills/archify/test/v1-compatibility.test.mjs +329 -0
- package/skills/archify/test/vertical-edge.test.mjs +68 -0
- package/skills/archify/test/viewer-camera-browser.test.mjs +395 -0
- package/skills/archify/test/viewer-chrome-layout.test.mjs +1104 -0
- package/skills/archify/test/viewer-identifiers-browser.test.mjs +135 -0
- package/skills/archify/test/visual-check.test.mjs +400 -0
- package/skills/archify/test/webm-artifact.smoke.mjs +1855 -0
- package/skills/archify/test/workflow-compiler-hard-contract.test.mjs +2136 -0
- package/skills/archify/test/workflow-compiler.test.mjs +1163 -0
- package/skills/archify/test/workflow-migration.test.mjs +620 -0
- package/skills/archify/test/workflow-semantic-contract.test.mjs +131 -0
- package/skills/architect/SKILL.md +83 -0
- package/skills/architect/references/design-red-flags.md +33 -0
- package/skills/architect/references/rationale-template.md +35 -0
- package/skills/architect/references/runner-prompt.md +20 -0
- package/skills/arena/SKILL.md +13 -0
- package/skills/automate-me/SKILL.md +104 -0
- package/skills/autoresearch/SKILL.md +14 -0
- package/skills/debugging/SKILL.md +279 -0
- package/skills/dev-plan/SKILL.md +117 -92
- package/skills/dev-plan/references/architecture-quality.md +141 -0
- package/skills/dev-plan/references/execution-workflow.md +25 -0
- package/skills/dev-plan/references/plan-skeleton.md +252 -77
- package/skills/dev-plan/scripts/check_progress.sh +162 -0
- package/skills/documentation-writer/SKILL.md +204 -0
- package/skills/documentation-writer/assets/templates/ARCHITECTURE.md +49 -0
- package/skills/documentation-writer/assets/templates/CONCERNS.md +56 -0
- package/skills/documentation-writer/assets/templates/CONVENTIONS.md +52 -0
- package/skills/documentation-writer/assets/templates/FEATURES.md +43 -0
- package/skills/documentation-writer/assets/templates/INTEGRATIONS.md +48 -0
- package/skills/documentation-writer/assets/templates/STACK.md +56 -0
- package/skills/documentation-writer/assets/templates/STRUCTURE.md +44 -0
- package/skills/documentation-writer/assets/templates/TESTING.md +57 -0
- package/skills/documentation-writer/references/api-docs.md +185 -0
- package/skills/documentation-writer/references/architecture.md +134 -0
- package/skills/documentation-writer/references/codebase-map.md +113 -0
- package/skills/documentation-writer/references/inquiry-checkpoints.md +78 -0
- package/skills/documentation-writer/references/readme.md +89 -0
- package/skills/documentation-writer/references/stack-detection.md +134 -0
- package/skills/documentation-writer/references/user-manual.md +103 -0
- package/skills/documentation-writer/references/writing-style.md +220 -0
- package/skills/documentation-writer/scripts/check_doc.py +273 -0
- package/skills/documentation-writer/scripts/scan.py +712 -0
- package/skills/elintp/SKILL.md +155 -0
- package/skills/figure-it-out/SKILL.md +53 -0
- package/skills/gdpr-compliant/SKILL.md +283 -0
- package/skills/gdpr-compliant/references/Security.md +266 -0
- package/skills/gdpr-compliant/references/data-rights.md +177 -0
- package/skills/how/SKILL.md +58 -0
- package/skills/how/references/explainer-prompt.md +55 -0
- package/skills/how/references/explorer-prompt.md +52 -0
- package/skills/humanize-writing/SKILL.md +417 -0
- package/skills/humanize-writing/references/ai-tells.md +291 -0
- package/skills/kpi-dashboard-design/SKILL.md +103 -0
- package/skills/landing-page-conversion-audit/SKILL.md +122 -0
- package/skills/meeting-minutes/SKILL.md +235 -0
- package/skills/pardon/SKILL.md +30 -0
- package/skills/portal-app-exchange/SKILL.md +97 -0
- package/skills/portal-dev-setup/SKILL.md +610 -0
- package/skills/portal-dev-setup/puller.env.example +75 -0
- package/skills/portal-dev-setup/references/kafka.md +140 -0
- package/skills/portal-dev-setup/references/troubleshooting.md +163 -0
- package/skills/portal-dev-setup/scripts/onebox.sh +1420 -0
- package/skills/portal-external-app/SKILL.md +309 -0
- package/skills/portal-external-app/references/contract-doc-template.md +96 -0
- package/skills/portal-external-app/references/health-contract.md +80 -0
- package/skills/portal-external-app/references/integration-contract.md +130 -0
- package/skills/portal-external-app/references/public-entrypoints.md +100 -0
- package/skills/portal-external-app/references/quota-and-seats.md +194 -0
- package/skills/portal-external-app/references/registration-and-onebox.md +315 -0
- package/skills/portal-external-app/scripts/health-verdict.ts +22 -0
- package/skills/portal-external-app/scripts/verify-health.ts +27 -0
- package/skills/portal-logging/SKILL.md +139 -0
- package/skills/portal-logging/references/collectors.md +285 -0
- package/skills/portal-logging/references/contract.md +95 -0
- package/skills/portal-logging/scripts/smoke-ingest.sh +72 -0
- package/skills/portal-micro-app/SKILL.md +73 -0
- package/skills/portal-micro-app/references/manifest-and-acl.md +97 -0
- package/skills/portal-micro-app/references/open-api-and-extensions.md +86 -0
- package/skills/portal-micro-app/references/sdk-reference.md +208 -0
- package/skills/prd/SKILL.md +230 -0
- package/skills/prd/references/prd-skeleton.md +282 -0
- package/skills/prd/references/product-quality.md +89 -0
- package/skills/prd/references/spms-mapping.md +150 -0
- package/skills/react/SKILL.md +125 -0
- package/skills/react/references/actions.md +251 -0
- package/skills/react/references/component-patterns.md +275 -0
- package/skills/react/references/data-fetching.md +279 -0
- package/skills/react/references/effect-patterns.md +407 -0
- package/skills/react/references/js-performance.md +432 -0
- package/skills/react/references/react19-migration.md +407 -0
- package/skills/react/references/rendering-performance.md +351 -0
- package/skills/react/references/rerender-optimization.md +578 -0
- package/skills/reflect/SKILL.md +13 -0
- package/skills/review-code/SKILL.md +63 -0
- package/skills/review-code/agents/openai.yaml +4 -0
- package/skills/review-code/references/git-scopes.md +38 -0
- package/skills/review-code/references/report-contract.md +56 -0
- package/skills/review-code/references/review-lenses.md +33 -0
- package/skills/review-dev-plan/SKILL.md +88 -0
- package/skills/review-dev-plan/agents/openai.yaml +4 -0
- package/skills/review-dev-plan/references/report-contract.md +59 -0
- package/skills/review-dev-plan/references/review-lenses.md +82 -0
- package/skills/review-prd/SKILL.md +84 -0
- package/skills/review-prd/agents/openai.yaml +4 -0
- package/skills/review-prd/references/report-contract.md +64 -0
- package/skills/review-prd/references/review-lenses.md +82 -0
- package/skills/review-prd-dev-gaps/SKILL.md +84 -0
- package/skills/review-prd-dev-gaps/agents/openai.yaml +4 -0
- package/skills/review-prd-dev-gaps/references/report-contract.md +72 -0
- package/skills/rust/SKILL.md +103 -0
- package/skills/rust/references/chapter_01.md +564 -0
- package/skills/rust/references/chapter_02.md +117 -0
- package/skills/rust/references/chapter_03.md +209 -0
- package/skills/rust/references/chapter_04.md +183 -0
- package/skills/rust/references/chapter_05.md +390 -0
- package/skills/rust/references/chapter_06.md +142 -0
- package/skills/rust/references/chapter_07.md +226 -0
- package/skills/rust/references/chapter_08.md +257 -0
- package/skills/rust/references/chapter_09.md +261 -0
- package/skills/rust/references/chapter_10.md +554 -0
- package/skills/security-audit/SKILL.md +191 -0
- package/skills/security-audit/references/language-patterns.md +221 -0
- package/skills/security-audit/references/report-format.md +194 -0
- package/skills/security-audit/references/secret-patterns.md +178 -0
- package/skills/security-audit/references/vuln-categories.md +288 -0
- package/skills/security-audit/references/vulnerable-packages.md +111 -0
- package/skills/sql-optimization/SKILL.md +296 -0
- package/skills/story-points/SKILL.md +219 -0
- package/skills/story-points/references/factors.md +367 -0
- package/skills/summarize/SKILL.md +80 -0
- package/skills/swarm/SKILL.md +263 -0
- package/skills/swarm/evals/evals.json +55 -0
- package/skills/swarm/references/agent-types.md +260 -0
- package/skills/swarm/references/teams/code-audit.md +81 -0
- package/skills/swarm/references/teams/debug-race.md +70 -0
- package/skills/swarm/references/teams/feature-dev.md +71 -0
- package/skills/swarm/references/teams/product.md +114 -0
- package/skills/swarm/references/teams/refactor-migration.md +73 -0
- package/skills/swarm/references/teams/research-debate.md +73 -0
- package/skills/tdd/SKILL.md +42 -0
- package/skills/teach/SKILL.md +21 -0
- package/skills/test-plan/SKILL.md +137 -0
- package/skills/test-plan/references/case-taxonomy.md +142 -0
- package/skills/why/SKILL.md +158 -0
- package/skills/why/references/epistemics.md +144 -0
- package/skills/why/references/investigator-prompt.md +103 -0
- package/skills/why/references/source-playbook.md +17 -0
- package/skills/why/references/sources/code-archaeology.md +88 -0
- package/skills/why/references/sources/databricks.md +70 -0
- package/skills/why/references/sources/datadog.md +99 -0
- package/skills/why/references/sources/incident-postmortem.md +15 -0
- package/skills/why/references/sources/linear.md +48 -0
- package/skills/why/references/sources/notion.md +55 -0
- package/skills/why/references/sources/sentry.md +100 -0
- package/skills/why/references/sources/slack.md +54 -0
- package/skills/why/references/synthesizer-prompt.md +135 -0
- package/skills/working-with-mbx/SKILL.md +343 -0
- package/skills/working-with-mbx/references/acknowledgements.md +37 -0
- package/skills/working-with-mbx/references/benchmarks.md +140 -0
- package/skills/working-with-mbx/references/cache-results.md +153 -0
- package/skills/working-with-mbx/references/cache-server.md +151 -0
- package/skills/working-with-mbx/references/cli/adopt.md +29 -0
- package/skills/working-with-mbx/references/cli/cache/dir.md +24 -0
- package/skills/working-with-mbx/references/cli/cache/export.md +31 -0
- package/skills/working-with-mbx/references/cli/cache/import.md +27 -0
- package/skills/working-with-mbx/references/cli/cache/largest.md +26 -0
- package/skills/working-with-mbx/references/cli/cache/projects.md +23 -0
- package/skills/working-with-mbx/references/cli/cache/remove.md +30 -0
- package/skills/working-with-mbx/references/cli/cache/stats.md +24 -0
- package/skills/working-with-mbx/references/cli/cache/trace.md +27 -0
- package/skills/working-with-mbx/references/cli/cache/verify.md +23 -0
- package/skills/working-with-mbx/references/cli/cache.md +35 -0
- package/skills/working-with-mbx/references/cli/clean.md +27 -0
- package/skills/working-with-mbx/references/cli/completion.md +27 -0
- package/skills/working-with-mbx/references/cli/doctor.md +24 -0
- package/skills/working-with-mbx/references/cli/exec.md +28 -0
- package/skills/working-with-mbx/references/cli/explain.md +29 -0
- package/skills/working-with-mbx/references/cli/gc.md +28 -0
- package/skills/working-with-mbx/references/cli/prefetch.md +27 -0
- package/skills/working-with-mbx/references/cli/setup.md +28 -0
- package/skills/working-with-mbx/references/cli/stats.md +24 -0
- package/skills/working-with-mbx/references/cli/tui.md +24 -0
- package/skills/working-with-mbx/references/cli.md +58 -0
- package/skills/working-with-mbx/references/compared.md +67 -0
- package/skills/working-with-mbx/references/configuration.md +724 -0
- package/skills/working-with-mbx/references/cookbook/fork-prs.md +82 -0
- package/skills/working-with-mbx/references/cookbook/local-development.md +127 -0
- package/skills/working-with-mbx/references/cookbook/migrate.md +67 -0
- package/skills/working-with-mbx/references/dashboard.md +89 -0
- package/skills/working-with-mbx/references/faq.md +75 -0
- package/skills/working-with-mbx/references/getting-started.md +147 -0
- package/skills/working-with-mbx/references/github-action.md +254 -0
- package/skills/working-with-mbx/references/guide.md +59 -0
- package/skills/working-with-mbx/references/how-it-works.md +86 -0
- package/skills/working-with-mbx/references/incremental.md +78 -0
- package/skills/working-with-mbx/references/index.md +57 -0
- package/skills/working-with-mbx/references/installation.md +101 -0
- package/skills/working-with-mbx/references/limits.md +182 -0
- package/skills/working-with-mbx/references/linkers.md +75 -0
- package/skills/working-with-mbx/references/managed-targets.md +197 -0
- package/skills/working-with-mbx/references/protocol-compatibility.md +103 -0
- package/skills/working-with-mbx/references/remote-cache.md +190 -0
- package/skills/working-with-mbx/references/scheduling.md +65 -0
- package/skills/working-with-mbx/references/setup.md +157 -0
- package/skills/working-with-mbx/references/stability.md +43 -0
- package/skills/working-with-mbx/references/standalone-builds.md +102 -0
- package/skills/working-with-mbx/references/stats.md +49 -0
- package/skills/working-with-mbx/references/troubleshooting.md +136 -0
- package/skills/working-with-mbx/references/tui.md +163 -0
- package/skills/working-with-mbx/update-docs.sh +49 -0
- package/skills/working-with-mise/SKILL.md +297 -0
- package/skills/working-with-mise/references/cli/activate-html.md +90 -0
- package/skills/working-with-mise/references/cli/alias-html.md +30 -0
- package/skills/working-with-mise/references/cli/backends-html.md +40 -0
- package/skills/working-with-mise/references/cli/bin-paths-html.md +37 -0
- package/skills/working-with-mise/references/cli/bootstrap-html.md +109 -0
- package/skills/working-with-mise/references/cli/cache-html.md +40 -0
- package/skills/working-with-mise/references/cli/completion-html.md +76 -0
- package/skills/working-with-mise/references/cli/config-html.md +44 -0
- package/skills/working-with-mise/references/cli/daemons-html.md +48 -0
- package/skills/working-with-mise/references/cli/deactivate-html.md +47 -0
- package/skills/working-with-mise/references/cli/deps-html.md +89 -0
- package/skills/working-with-mise/references/cli/doctor-html.md +46 -0
- package/skills/working-with-mise/references/cli/dotfiles-html.md +57 -0
- package/skills/working-with-mise/references/cli/edit-html.md +48 -0
- package/skills/working-with-mise/references/cli/en-html.md +62 -0
- package/skills/working-with-mise/references/cli/env-html.md +57 -0
- package/skills/working-with-mise/references/cli/exec-html.md +79 -0
- package/skills/working-with-mise/references/cli/exec.md +79 -0
- package/skills/working-with-mise/references/cli/fmt-html.md +44 -0
- package/skills/working-with-mise/references/cli/generate-html.md +43 -0
- package/skills/working-with-mise/references/cli/implode-html.md +35 -0
- package/skills/working-with-mise/references/cli/install-html.md +83 -0
- package/skills/working-with-mise/references/cli/install-into-html.md +47 -0
- package/skills/working-with-mise/references/cli/latest-html.md +62 -0
- package/skills/working-with-mise/references/cli/link-html.md +57 -0
- package/skills/working-with-mise/references/cli/lock-html.md +114 -0
- package/skills/working-with-mise/references/cli/ls-html.md +95 -0
- package/skills/working-with-mise/references/cli/ls-remote-html.md +61 -0
- package/skills/working-with-mise/references/cli/mcp-html.md +57 -0
- package/skills/working-with-mise/references/cli/oci-html.md +41 -0
- package/skills/working-with-mise/references/cli/outdated-html.md +79 -0
- package/skills/working-with-mise/references/cli/packslip-html.md +38 -0
- package/skills/working-with-mise/references/cli/patrons-html.md +45 -0
- package/skills/working-with-mise/references/cli/plugins-html.md +46 -0
- package/skills/working-with-mise/references/cli/prune-html.md +56 -0
- package/skills/working-with-mise/references/cli/registry-html.md +59 -0
- package/skills/working-with-mise/references/cli/reshim-html.md +46 -0
- package/skills/working-with-mise/references/cli/run-html.md +152 -0
- package/skills/working-with-mise/references/cli/search-html.md +69 -0
- package/skills/working-with-mise/references/cli/self-update-html.md +42 -0
- package/skills/working-with-mise/references/cli/set-html.md +116 -0
- package/skills/working-with-mise/references/cli/settings-html.md +78 -0
- package/skills/working-with-mise/references/cli/shell-alias-html.md +39 -0
- package/skills/working-with-mise/references/cli/shell-html.md +53 -0
- package/skills/working-with-mise/references/cli/skills-html.md +39 -0
- package/skills/working-with-mise/references/cli/sponsors-html.md +31 -0
- package/skills/working-with-mise/references/cli/ssh-html.md +45 -0
- package/skills/working-with-mise/references/cli/sync-html.md +37 -0
- package/skills/working-with-mise/references/cli/tasks-html.md +61 -0
- package/skills/working-with-mise/references/cli/test-tool-html.md +49 -0
- package/skills/working-with-mise/references/cli/token-html.md +37 -0
- package/skills/working-with-mise/references/cli/tool-alias-html.md +41 -0
- package/skills/working-with-mise/references/cli/tool-html.md +55 -0
- package/skills/working-with-mise/references/cli/tool-stub-html.md +60 -0
- package/skills/working-with-mise/references/cli/trust-html.md +63 -0
- package/skills/working-with-mise/references/cli/uninstall-html.md +62 -0
- package/skills/working-with-mise/references/cli/unset-html.md +59 -0
- package/skills/working-with-mise/references/cli/untrust-html.md +35 -0
- package/skills/working-with-mise/references/cli/unuse-html.md +74 -0
- package/skills/working-with-mise/references/cli/upgrade-html.md +133 -0
- package/skills/working-with-mise/references/cli/use-html.md +130 -0
- package/skills/working-with-mise/references/cli/use.md +130 -0
- package/skills/working-with-mise/references/cli/version-html.md +46 -0
- package/skills/working-with-mise/references/cli/watch-html.md +465 -0
- package/skills/working-with-mise/references/cli/where-html.md +53 -0
- package/skills/working-with-mise/references/cli/which-html.md +55 -0
- package/skills/working-with-mise/references/configuration/environments-html.md +171 -0
- package/skills/working-with-mise/references/configuration/project-diagnostics-html.md +93 -0
- package/skills/working-with-mise/references/configuration/settings-html.md +3062 -0
- package/skills/working-with-mise/references/configuration/vars-html.md +167 -0
- package/skills/working-with-mise/references/dev-tools/aliases-html.md +97 -0
- package/skills/working-with-mise/references/dev-tools/backend_architecture-html.md +198 -0
- package/skills/working-with-mise/references/dev-tools/backends/aqua-html.md +274 -0
- package/skills/working-with-mise/references/dev-tools/backends/aqua.md +274 -0
- package/skills/working-with-mise/references/dev-tools/backends/asdf-html.md +98 -0
- package/skills/working-with-mise/references/dev-tools/backends/asdf.md +98 -0
- package/skills/working-with-mise/references/dev-tools/backends/cargo-html.md +240 -0
- package/skills/working-with-mise/references/dev-tools/backends/cargo.md +240 -0
- package/skills/working-with-mise/references/dev-tools/backends/conda-html.md +125 -0
- package/skills/working-with-mise/references/dev-tools/backends/dotnet-html.md +142 -0
- package/skills/working-with-mise/references/dev-tools/backends/forgejo-html.md +533 -0
- package/skills/working-with-mise/references/dev-tools/backends/gem-html.md +77 -0
- package/skills/working-with-mise/references/dev-tools/backends/gem.md +77 -0
- package/skills/working-with-mise/references/dev-tools/backends/github-html.md +622 -0
- package/skills/working-with-mise/references/dev-tools/backends/github.md +622 -0
- package/skills/working-with-mise/references/dev-tools/backends/gitlab-html.md +546 -0
- package/skills/working-with-mise/references/dev-tools/backends/go-html.md +115 -0
- package/skills/working-with-mise/references/dev-tools/backends/go.md +115 -0
- package/skills/working-with-mise/references/dev-tools/backends/http-html.md +644 -0
- package/skills/working-with-mise/references/dev-tools/backends/http.md +644 -0
- package/skills/working-with-mise/references/dev-tools/backends/npm-html.md +436 -0
- package/skills/working-with-mise/references/dev-tools/backends/npm.md +436 -0
- package/skills/working-with-mise/references/dev-tools/backends/packslip-html.md +310 -0
- package/skills/working-with-mise/references/dev-tools/backends/pipx-html.md +329 -0
- package/skills/working-with-mise/references/dev-tools/backends/pipx.md +329 -0
- package/skills/working-with-mise/references/dev-tools/backends/pkgx-html.md +73 -0
- package/skills/working-with-mise/references/dev-tools/backends/pypi-html.md +331 -0
- package/skills/working-with-mise/references/dev-tools/backends/s3-html.md +346 -0
- package/skills/working-with-mise/references/dev-tools/backends/spm-html.md +201 -0
- package/skills/working-with-mise/references/dev-tools/backends/ubi-html.md +232 -0
- package/skills/working-with-mise/references/dev-tools/backends/vfox-html.md +173 -0
- package/skills/working-with-mise/references/dev-tools/backends/vfox.md +173 -0
- package/skills/working-with-mise/references/dev-tools/backends.md +32 -0
- package/skills/working-with-mise/references/dev-tools/comparison-to-asdf-html.md +112 -0
- package/skills/working-with-mise/references/dev-tools/deps-html.md +390 -0
- package/skills/working-with-mise/references/dev-tools/github-tokens-html.md +390 -0
- package/skills/working-with-mise/references/dev-tools/index-html.md +420 -0
- package/skills/working-with-mise/references/dev-tools/mise-lock-html.md +660 -0
- package/skills/working-with-mise/references/dev-tools/mise-oci-html.md +418 -0
- package/skills/working-with-mise/references/dev-tools/packslip-resources-html.md +203 -0
- package/skills/working-with-mise/references/dev-tools/packslip-verification-html.md +178 -0
- package/skills/working-with-mise/references/dev-tools/shims-html.md +397 -0
- package/skills/working-with-mise/references/dev-tools/tool-stubs-html.md +416 -0
- package/skills/working-with-mise/references/guides/getting-started.md +268 -0
- package/skills/working-with-mise/references/index.md +37 -0
- package/skills/working-with-mise/update-docs.sh +111 -0
- package/skills/xgent-app-release/SKILL.md +507 -0
- package/skills/xgent-app-release/references/build-and-package.md +70 -0
- package/skills/xgent-app-release/references/embed-csp.mjs +126 -0
- package/skills/xgent-app-release/references/frontend-archive.md +67 -0
- package/skills/xgent-app-release/references/public-delivery.md +75 -0
- package/skills/xgent-app-release/references/publish-api.md +321 -0
- package/skills/xgent-app-release/references/troubleshooting.md +124 -0
- package/skills/xgent-app-release/references/verify-preflight.mjs +50 -0
- package/skills/xgent-app-release/scripts/npm-token.mjs +99 -0
- package/skills/xgent-app-release/scripts/preflight.mjs +351 -0
- package/skills/xgent-app-release/scripts/registry-config.mjs +88 -0
- package/skills/xgent-image-push/SKILL.md +239 -0
- package/skills/xgent-image-push/registry.env.example +51 -0
- package/skills/xgent-image-push/scripts/push-image.sh +576 -0
- package/skills/xgent-init/SKILL.md +37 -0
- package/skills/xgent-init/references/external-app-AGENTS.template.md +149 -0
- package/skills/xgent-init/references/external-app-DESIGN.template.md +317 -0
- package/skills/xgent-init/references/external-app-PRODUCT.template.md +87 -0
- package/skills/xgent-init/references/fill-guide.md +66 -0
- package/skills/xgent-init/scripts/check-docs.mjs +232 -0
- package/vendor/impeccable/LICENSE +191 -0
- package/vendor/impeccable/NOTICE.md +11 -0
- package/vendor/impeccable/VERSION.json +22 -0
- package/vendor/impeccable/bundle/blobs/00c067253d37cd20a41dbe9c806d6a72cbff983ad1418b3c3e447998f577b9c2 +152 -0
- package/vendor/impeccable/bundle/blobs/00d167d9183c8d0c6c0682055107382e6672bacf7a712de0abc8f157c2cb2210 +86 -0
- package/vendor/impeccable/bundle/blobs/00f053b877a92a9847d69eec2403e40c757152f30a5ca807c5033c58d7c297f1 +33 -0
- package/vendor/impeccable/bundle/blobs/012f548547fae48ebdd22a3c3af8a01032641fddd530e3783bd73b7358ab2c49 +80 -0
- package/vendor/impeccable/bundle/blobs/016c082dcd2aa8f3c080a757c8ed335c6070a904bd2f39668bb9d3e6f95929c1 +24 -0
- package/vendor/impeccable/bundle/blobs/0221a193d111a9de33a785706a603e55dd974a115f549dbdf74e0f9ec72bde7d +101 -0
- package/vendor/impeccable/bundle/blobs/03b30331c176a248a3b3bd17abdff1a1fd658f09ffb2a412b36ae9627dd3f33b +105 -0
- package/vendor/impeccable/bundle/blobs/055c571f2960b8f929d6a8d3806a4d32dfcb9750b3ef8b60adc8930fff34b559 +101 -0
- package/vendor/impeccable/bundle/blobs/058f81f256134841875fd3183e06b37a023de0c877fd2b9eecd97011640791fe +46 -0
- package/vendor/impeccable/bundle/blobs/05aa836a190f4ff62e5d4619738bdb891d83d85e35d81c2e6e322d1dc084d802 +80 -0
- package/vendor/impeccable/bundle/blobs/05e86f37d7fa381c5e8a04b6212490a27904d3be3e9384862a0764d3daba6d78 +54 -0
- package/vendor/impeccable/bundle/blobs/0605c8729dc638a46798e90ab12486fe3ae3372a869757cfb387a08e23b3c84a +152 -0
- package/vendor/impeccable/bundle/blobs/0617b37a905f0486c1ab4e91a287c8ef8292e253095c340f452d591206272f73 +104 -0
- package/vendor/impeccable/bundle/blobs/0648e4e06d01cabc91fa7dc19256ceedeeeea213b9265e9d36b0918370e16fb2 +318 -0
- package/vendor/impeccable/bundle/blobs/06b20bd42e5682a42c5d6fbfaad4c55e66ff9b9d99a604bd31d3545af120fc2d +101 -0
- package/vendor/impeccable/bundle/blobs/076a31941acbaa81013c8c511e146ed4138128eb5e9895dae3e9a27a25ac4f04 +13 -0
- package/vendor/impeccable/bundle/blobs/08346755b13f1a3f7c6fb4e512387884b80467aaeff109fd41f5521d2a95635a +113 -0
- package/vendor/impeccable/bundle/blobs/08398fa2d8e2b06b849f1c0f032e1e93b832e9294aed35c1c7f62b938d62ee80 +43 -0
- package/vendor/impeccable/bundle/blobs/087f6715114e901c2ce00b438e75b82fd48978c020a782f3dc361d39eb7198a6 +26 -0
- package/vendor/impeccable/bundle/blobs/08812a8618de7bd2f63a51298e9c2558031237e8efba280062ccb636101e25e1 +80 -0
- package/vendor/impeccable/bundle/blobs/08a2980eae0bfea1f00229899defc28ec92c7ecb875bf5fb02e4ba80dad6c394 +806 -0
- package/vendor/impeccable/bundle/blobs/08d78eb31c561256f83baa0afa742a660f1467aa2c81be2f60c2b7f9c770d66e +54 -0
- package/vendor/impeccable/bundle/blobs/09310582ed23393b171eb99ad4a288cc422ac53c26d76311586ce54c6df77b22 +113 -0
- package/vendor/impeccable/bundle/blobs/098a891028ce59c212b747d3c70468dd750aff7053a703d1336045ed31e0da7c +70 -0
- package/vendor/impeccable/bundle/blobs/0a151a54959a15eb32fa338890d5d64ac48a9d54d2d5442c3c7708a4c27c1858 +104 -0
- package/vendor/impeccable/bundle/blobs/0bb4085f6dda702846e0e56bd4f797aa1b046ab48eca02644448e368f3820f88 +104 -0
- package/vendor/impeccable/bundle/blobs/0bc2bc36ca6e74f9f610392f1a4fb8f57b2676238ba1f9c65cd8714f5d27e8a2 +42 -0
- package/vendor/impeccable/bundle/blobs/0bc7d7971b3edf2acd0580e847458dc6d84129d90715b452799ace3bed815c7c +84 -0
- package/vendor/impeccable/bundle/blobs/0bf6f08bf34d24cd88a78d544add9e4d71478bcf939926cde32f4e164882c775 +105 -0
- package/vendor/impeccable/bundle/blobs/0c064c9975f25f6eb5cf7911c2eeafd3e695d729f8c86a49a24ff2d76cb3cd94 +63 -0
- package/vendor/impeccable/bundle/blobs/0ccf57f758eb0d53bc32c5c77156f016e528d20fe2c2740662bf19964dfbb00b +152 -0
- package/vendor/impeccable/bundle/blobs/0dd1e6ccf053cb80e057caf7bf2fef30fd0197a41d907a1a8d2d2d02f6978674 +63 -0
- package/vendor/impeccable/bundle/blobs/0e081d496eba4bd77aca81723d59120c10177a71c9551a60ab923c356fb3cf38 +104 -0
- package/vendor/impeccable/bundle/blobs/0e18ac33b7e6a247b658fcaf926d9eac028399597dbaba366f1d2f2b884a383b +325 -0
- package/vendor/impeccable/bundle/blobs/0ed5986d1503399f48c11104df5e523a63be2d6558770ebfbbeb2323ca3f2ad3 +46 -0
- package/vendor/impeccable/bundle/blobs/11f75834c26ecd8a5b0afdf696e838953b235dc4835b7293bbc6b1bc27dd3106 +84 -0
- package/vendor/impeccable/bundle/blobs/14c9c9a7816026dd77494d06b8d1777c8d64785126b0c9ac8db5ebd996dfd6b6 +101 -0
- package/vendor/impeccable/bundle/blobs/14ef0ab84c10331f8af6b4124387a3f80b493175a04a3f89200719b4b5aea221 +152 -0
- package/vendor/impeccable/bundle/blobs/1547005438784032de3254cb35bff393e8187d7a459d0c20a693d9bfb0b5c1a4 +42 -0
- package/vendor/impeccable/bundle/blobs/162b814ddd1133923b9584bb95f85959e64844c94341d6bf10a81c06ab7cc02c +101 -0
- package/vendor/impeccable/bundle/blobs/1640c70b984a43e729d72d046109f87243ae84ecd64d2600a007d140558123cc +80 -0
- package/vendor/impeccable/bundle/blobs/16498466a97a5b19a593d5b3f245468c71784bea069d7fc8aa9690db5ac1d968 +29 -0
- package/vendor/impeccable/bundle/blobs/1652d639d91889a08bda7f351456c43ee30e5677aa4866a90f375e1e4be15deb +80 -0
- package/vendor/impeccable/bundle/blobs/16ba7fca1973c5faf53dd2ca523559129c0fe9e5f8d50b645f527afa78186cd2 +345 -0
- package/vendor/impeccable/bundle/blobs/16d99e9fe8e75d69042bc4fda12e93daa7e10f9fa6c00b12b0f0580b119a4cfd +105 -0
- package/vendor/impeccable/bundle/blobs/171777f8a8596d2ffdb43f4b935a7c6c12859ace233967f868a566390a59708e +325 -0
- package/vendor/impeccable/bundle/blobs/1725ca4aa546a34770f29191b58bf8dc14957d4258fb9e7d02f7b1c59c412ea4 +63 -0
- package/vendor/impeccable/bundle/blobs/173dd66abe65633910dcb04a51f40d6ff2a793f87088f022a02fc4cad24dd133 +94 -0
- package/vendor/impeccable/bundle/blobs/17c583cf8ad41266ea1e787b666b9d91fe13469d3d0f6af57c08e0146f9b17ac +58 -0
- package/vendor/impeccable/bundle/blobs/1898529e994bf0a31ee9ff3f87c343caea3d8a7e0986f404e129fbf89078ade0 +90 -0
- package/vendor/impeccable/bundle/blobs/190a4e642ca362d7499f3c3ab123e21f18f75457d11f072b545a183f296e6495 +99 -0
- package/vendor/impeccable/bundle/blobs/1971edc3784273bd8da7b1980779c6159471e857992faa6637178109cb130503 +806 -0
- package/vendor/impeccable/bundle/blobs/199d5d3db1197e053a2eb9c3cb927d44cbaaaeb57745c1ada3fd775ba50d9291 +104 -0
- package/vendor/impeccable/bundle/blobs/19b439d7d16e139357459d3874f739ea94dbdffeb2a0e201df1620ed1e40574d +24 -0
- package/vendor/impeccable/bundle/blobs/19c5bfce570a0e2bddd4d9c788936ff9070c90299363c4853ba77bfd37306e20 +416 -0
- package/vendor/impeccable/bundle/blobs/1b289c8c09de9d4442109ada91b1fa3a190e113a310cab7aa26a3633c5df0bb0 +24 -0
- package/vendor/impeccable/bundle/blobs/1bb3bdce54386e96e21b5956713a80583e6b3b9d1170f3bb8dec3819fa341bc3 +46 -0
- package/vendor/impeccable/bundle/blobs/1c11cb8ea42536c7a51e197f1aa32198960bb89262da2eaf32e0feb03c70792c +152 -0
- package/vendor/impeccable/bundle/blobs/1c6258015ed02c522948f8f1a3b6457395a8f7954497b87c1cd83f1791f9f819 +24 -0
- package/vendor/impeccable/bundle/blobs/1d7145fd5bf65282b2e05cf42faf41766d68e83e2b75f460b3b62d81ada5e5d7 +152 -0
- package/vendor/impeccable/bundle/blobs/1d72b494f46a60e6c9c06e89bab79789dd85e11f62fb4286a03abf26d352dc1f +80 -0
- package/vendor/impeccable/bundle/blobs/1e2f696760ee55fb154bdcc302c7d7b0fbb807e0308130594bd892dae14dc9ea +42 -0
- package/vendor/impeccable/bundle/blobs/1f6c3a1d7344f44eaa88b6f38334ad7d7b60201709589039a58cee73de486f5d +24 -0
- package/vendor/impeccable/bundle/blobs/207d443cabe4e6fe1351f91785748957f757bf1e7aeca405433c0329dad46a15 +63 -0
- package/vendor/impeccable/bundle/blobs/20e2111b3e065e8e8054f715ea3902e64b77886b30d2bddee723558f22942620 +90 -0
- package/vendor/impeccable/bundle/blobs/21e78c8a77badb3f83290cd4577ed3b24bd4dd3b57136d7da75733d4f3ee9ac0 +19 -0
- package/vendor/impeccable/bundle/blobs/223f08673b267f81d7586f686afe05d7cd7529a8e11ac37d979f95c2ceaae8ce +24 -0
- package/vendor/impeccable/bundle/blobs/238e1967d933ca5739db708f7ad9f72ca8b34bc4c9b9e1c07b0a06dcf9d00681 +806 -0
- package/vendor/impeccable/bundle/blobs/244e5b7bca6d22a51b4e22104a52a36e477056b03d257b56d1d4e319cd6167a8 +80 -0
- package/vendor/impeccable/bundle/blobs/2499b18f26639694344ca95682f47c65494f730cfff88aa9bd2aa83a22e5926d +101 -0
- package/vendor/impeccable/bundle/blobs/26cd88d10f8a14ed0ddb6e6b21e5e2c981f410eac93afa179202c354d7d1c0d5 +113 -0
- package/vendor/impeccable/bundle/blobs/275dd1b6e63bbd30d2713227c4f79b880a8bc4e01cc48d392068bb86939d3afa +38 -0
- package/vendor/impeccable/bundle/blobs/28f65b42c1ce9aaea35dc37a51257d7c703bb7f6553ebe3b8ca238a1007251e0 +113 -0
- package/vendor/impeccable/bundle/blobs/29f741b71e75fd39c65ca6df4b01b5f6c4f3c4c7adf23b47a3220ce2c0251f24 +104 -0
- package/vendor/impeccable/bundle/blobs/2ac1624b1253f3b6fcf2da54d54293624176539b2e9609a49245e7e46c65ca5f +42 -0
- package/vendor/impeccable/bundle/blobs/2b58041cd82d819d12762b10becb95f8253c661bf6a9de40f61fc01c1204b743 +806 -0
- package/vendor/impeccable/bundle/blobs/2b5b2fbf5f658f34ea1997fb1aeebe01604d05187f75c6a4f1f55a5bc78520a4 +104 -0
- package/vendor/impeccable/bundle/blobs/2b9379cdb329890eebe2384fbaa23f771745f30d8cfc43e180ebd092e69bcd2f +87 -0
- package/vendor/impeccable/bundle/blobs/2bc5d62463cc83d6417df7b8f4a02b4135e2b1bb654aa7727890662496f86e3d +42 -0
- package/vendor/impeccable/bundle/blobs/2c2ed6286bd74adef4f24ef442e2e1bc0780d44bc060aa2a4c03a03988dbafd5 +325 -0
- package/vendor/impeccable/bundle/blobs/2ce1722bd1a9f366182d9357d629796b1448f7a0126a854df507eb044d891cab +26 -0
- package/vendor/impeccable/bundle/blobs/2e4846117a2fcdc1e4bc9570a5333da839649cb8ccdac6a30a87591ca05b4bb0 +54 -0
- package/vendor/impeccable/bundle/blobs/2f02f96f889e0c8e0e90806af1ef17e0c162a6cc402068f434d3f7608d9deda3 +54 -0
- package/vendor/impeccable/bundle/blobs/2feb3768125ba6469c92a50d516727e6d42f44579165ddfd33409948e2a3803d +27 -0
- package/vendor/impeccable/bundle/blobs/3149a87bbed84bffe3558d5eaf1dc596b2e84d3c1be290fc7b1c13e481ae0803 +90 -0
- package/vendor/impeccable/bundle/blobs/31b90048c0b540daec46762a10c2b6b6434737a89af005054d8b848d829d003b +69 -0
- package/vendor/impeccable/bundle/blobs/3253eab02b62efa80abc74a5c85da08f3e2c6c20dff8dec38f4d236cbbfa0f3c +63 -0
- package/vendor/impeccable/bundle/blobs/3565d038a2eeab88a8b18ff52e6630008ab30f867f9df922a38ce8980440b2e3 +80 -0
- package/vendor/impeccable/bundle/blobs/3673248740bcdd1122ccc610093ba2fe52f3943a61ce0b7170b74dc49e5b6098 +416 -0
- package/vendor/impeccable/bundle/blobs/3753448bca49da76dd8b12d5a8b4264414673f26e49028d37616faa8beb210b7 +127 -0
- package/vendor/impeccable/bundle/blobs/37565671b09d983ea1ad83a9e9190bc37255d93c68445958c6facecc7e0f7c4f +33 -0
- package/vendor/impeccable/bundle/blobs/37680abf9a8e446619fcd33862718f483d197bf2652f966adca8dc54d2909b9d +85 -0
- package/vendor/impeccable/bundle/blobs/37aeddc0f2031fa89d72519ae2e7542c267872f81786fb8288fca0a49118be11 +27 -0
- package/vendor/impeccable/bundle/blobs/37c9a2122efa64dc8789eb47d196150b0bc635e0ba95042fd381ff157002ed50 +111 -0
- package/vendor/impeccable/bundle/blobs/385a0efe833bd4afe4a257e7159590de0cf1b7fd8f7b213b732f1e537c62dab7 +21 -0
- package/vendor/impeccable/bundle/blobs/3898bd9b56a042e860a0db4fb4dd81ac81126fa218b604702e2ac0c2287ae09b +345 -0
- package/vendor/impeccable/bundle/blobs/3970c8e24615610b0246585e49146f6762d5082b3c8fddc08a00940d6e72d394 +80 -0
- package/vendor/impeccable/bundle/blobs/39ac044f2e45a9e7eed8eb68fe91d32938160eb7f8fa93d2afc42fc80a0c3c10 +54 -0
- package/vendor/impeccable/bundle/blobs/39d9600489073e227e4f4d55c451ce4252a6632ed7ae37923efbbcbc91f16d07 +206 -0
- package/vendor/impeccable/bundle/blobs/3af7c46309f748ff3845f16455a431ec0e9e807e5e3a965e96e9ee75a1198eb8 +95 -0
- package/vendor/impeccable/bundle/blobs/3b2b60f23fa8ed9d73e721e17142c3933dc5318fa9a251742a76fee890ac81a8 +26 -0
- package/vendor/impeccable/bundle/blobs/3bcf81b938a0f0309e9ed6616f4bd18d82f07e2801411ee4cce51220d417eb95 +80 -0
- package/vendor/impeccable/bundle/blobs/3bd55b35c253f7841ca4e6e1a855a4b477d59aa2daf6e61e93fd685caaaff131 +63 -0
- package/vendor/impeccable/bundle/blobs/3bed76a0d528e2d73da8acae4dc63702bdb5baca5ab11600d70e75fc9f2ba90b +42 -0
- package/vendor/impeccable/bundle/blobs/3e3b6fdc6afbc2c2a734d08d6a18b393b7139c56f28f91f82e13e5555b98018a +84 -0
- package/vendor/impeccable/bundle/blobs/3ef9a43006bc68d83bc958fc8401e59f9beb6379048f5ced047747fdad05b895 +46 -0
- package/vendor/impeccable/bundle/blobs/3f2c351303b74e217907006fb9c55ada2ef596e9710c13d631e20506d17b9ee8 +325 -0
- package/vendor/impeccable/bundle/blobs/400419aaa20f710e1a7e5ca1fce9e8bc995c4db84053f40cf778d987619e0210 +24 -0
- package/vendor/impeccable/bundle/blobs/402373ef95962ecb81dd3d7cf70ecb3bd3e22a2bd2aabb4c0d76f7f4f9447870 +105 -0
- package/vendor/impeccable/bundle/blobs/40c87038b5f75147a5952a96237acf312a327bf70c1bcd8e0a5f064625ae9668 +51 -0
- package/vendor/impeccable/bundle/blobs/40cd6024312a1339aa66801df533afa543e60c36e708f0f9659dd8d558f83dce +63 -0
- package/vendor/impeccable/bundle/blobs/412dd9a5238aee223397591fe49b3bd27b6b53d649a0e67ed8570f3e199cebb9 +24 -0
- package/vendor/impeccable/bundle/blobs/41ef23c048ab739f48afdce26a2678d36ee40bcced34ef4b969d1d8ffafca64c +113 -0
- package/vendor/impeccable/bundle/blobs/420d82fe41884b7aa8c28750520146d8160c91396ac332a96b2d82a90b017fb2 +80 -0
- package/vendor/impeccable/bundle/blobs/424ff273e7ab283d6695d127bb502675627193f5b752d7b43b7524bcfc42f43f +84 -0
- package/vendor/impeccable/bundle/blobs/42831c3cd874346d8e7f120808d91e6ed3cda5c3eca6eefd76b126659536bc87 +148 -0
- package/vendor/impeccable/bundle/blobs/42a71df98075f66e6eb396b69ef3d6b1c3db46d1c1d24b4edc9d15f53d193ecb +111 -0
- package/vendor/impeccable/bundle/blobs/43dbfcb7c2e54c9cca9fce66024f17c06a2f2be645547b718b75c8828a463de2 +24 -0
- package/vendor/impeccable/bundle/blobs/442749aed338f51c1a3ccfb182c6ade9b74b90590b67984062ac94a5b100e914 +80 -0
- package/vendor/impeccable/bundle/blobs/4435529820c3fc2eceae8b1ee35c906a34c7612fb860117e896152b45aee0770 +26 -0
- package/vendor/impeccable/bundle/blobs/44a60aedcc350c2d7d501d0f830a31a586a6511a9ff9b4e361cb328bb747339d +101 -0
- package/vendor/impeccable/bundle/blobs/45dcea8da47cc21f447041daa942cf5d92cddde9a5a02c196cedbd159c829304 +47 -0
- package/vendor/impeccable/bundle/blobs/464c0c2b33d278375aec66caf95518f5e7ccd0aad1bea3f9dd553ed47815daa1 +325 -0
- package/vendor/impeccable/bundle/blobs/4700adf4542874f204c680ebad8317a97bf7169dbc04147082618ab59ce70c7d +85 -0
- package/vendor/impeccable/bundle/blobs/4777bbeaff2efcd6a2a66b07aacaaf57cd32f3fab1c1da5a0513937fafb48bd1 +63 -0
- package/vendor/impeccable/bundle/blobs/47b3461f6f76db80fdc49fc7542552d65fed24edc8d30d903cb76aefbad0ed05 +84 -0
- package/vendor/impeccable/bundle/blobs/47edbdfaf27073c47033d1ac7dfee881be49e2dcbda7671d1157300481dde6da +1 -0
- package/vendor/impeccable/bundle/blobs/484ea165f6d49ecc15b7a5c5623e377f2e203f4dad366df23eae99255ecf4572 +152 -0
- package/vendor/impeccable/bundle/blobs/485774d58dfd5796956024cdd9c12f05e692a3703f70b12a02ab43918885c3fd +101 -0
- package/vendor/impeccable/bundle/blobs/4879f38b23d0a251a63cbb0327e660296194cd2e71eb4da3236c6ebfe5807746 +33 -0
- package/vendor/impeccable/bundle/blobs/488da2e7406c6b4b5c92d7bc8cbd370cdaafc82a5f3ab5adbcffb21d1d1c4df4 +113 -0
- package/vendor/impeccable/bundle/blobs/48bb7c3b738f57fa4f3f714d7e3e919879036f3e751135a9acc1c5ede1850ea6 +54 -0
- package/vendor/impeccable/bundle/blobs/492a8030d11e2f4908d934bd817bd6d16a3164056c74a7172f60e2cec5ff3055 +42 -0
- package/vendor/impeccable/bundle/blobs/494d6fcb4701c437597c2ed16a9595af92f3d9ad53c944c96a2fb563bd766af5 +99 -0
- package/vendor/impeccable/bundle/blobs/4972f28d96897c8dec891f0de7a0d9d51f36030ff780ed9d960241c75413da2b +46 -0
- package/vendor/impeccable/bundle/blobs/49a7b37b98fb6e3ef68154174677ff4b9f1715efcffdbf6b30c3535b3e4e302c +54 -0
- package/vendor/impeccable/bundle/blobs/4a6f0386bff78bb42efa285df2919e75209ec336672cf5fff91ba66ffb352eaa +63 -0
- package/vendor/impeccable/bundle/blobs/4a8a45a46b79948a64b484edf389aa0b00fc80de855470cbabe3c7c71268f345 +828 -0
- package/vendor/impeccable/bundle/blobs/4ad7c5d5821f85c2311ff91746d9b9cf272dbe0a9a5b61687f77681f5a13f812 +69 -0
- package/vendor/impeccable/bundle/blobs/4b0e2eea17f297daa06b17578131775be099ef43addf91007f4b7e295454f64f +105 -0
- package/vendor/impeccable/bundle/blobs/4bceaf3346b6f5100b5a54deaae49a38b975dd134df2836675848f06ff1e7e11 +806 -0
- package/vendor/impeccable/bundle/blobs/4df48b7a86d525ad12e7889a1fd16b06ed4b25a9470c359c7193a6d82649262f +54 -0
- package/vendor/impeccable/bundle/blobs/4e3cc4d0e229ca96dd2e28fb2da0478a7f0bb64e447d07a652c425d8fbc57573 +113 -0
- package/vendor/impeccable/bundle/blobs/4ea8e05d0f88d24f182ad554da84317f90b9730e29fad262143ddf423a1f8645 +26 -0
- package/vendor/impeccable/bundle/blobs/4fb6d2fcc8afaf827a7377ddd604725264fd83be871e2d35062e9d1939144404 +25 -0
- package/vendor/impeccable/bundle/blobs/50d4b14134fc06daeac0aab6960800f171ef85250d3bcce6f246cf81e824463f +88 -0
- package/vendor/impeccable/bundle/blobs/50f3b5714ca3e2c1bcf070003733407935ee050609d3123c2c065489fbc9950b +43 -0
- package/vendor/impeccable/bundle/blobs/51032bb883137007127d30189b44b516d0e6140271bf5881da7eca76f8bd282c +113 -0
- package/vendor/impeccable/bundle/blobs/511ecde67e6bd976c9bdfa8d92f0dba359621344f8135c2a5ce5a66b385a4cb5 +42 -0
- package/vendor/impeccable/bundle/blobs/514a27fc9830455828d337cfc2fa95fa86be8e5464501bbabb9aca09a66b40ad +63 -0
- package/vendor/impeccable/bundle/blobs/521391d55814fdef6cd648ed62154a14d77b324004a0fc2d06c0a4e97857eab2 +806 -0
- package/vendor/impeccable/bundle/blobs/529cb2ace696ec11a86f4b010c9b137acf282072e483932181be1871df2aa690 +152 -0
- package/vendor/impeccable/bundle/blobs/52e861ac390a62c4473ae0cf87ff18dd6d721afa6557910492dd8ed28bd9970d +84 -0
- package/vendor/impeccable/bundle/blobs/532d6387db6f5da1a59dc7d29ce4d8ba6ca044626c367dc16e1cb8b981eb2d9a +104 -0
- package/vendor/impeccable/bundle/blobs/53628d05b7eff0d4f48b95e48fad40266452fe1b42f398bd88dd9328353e0dd8 +101 -0
- package/vendor/impeccable/bundle/blobs/53de37260c4f1c37e467557e9b038faa0f285b056bb2b95f435e0a7d1b69b0de +89 -0
- package/vendor/impeccable/bundle/blobs/5415103ca4422ea1422e23bfe9f9bae181f5d6d6407442f7fba31856ada58d12 +113 -0
- package/vendor/impeccable/bundle/blobs/54e71283cbd5646021fcd8eaa28d85852ec5288109c306aca9db9e2e4832338e +69 -0
- package/vendor/impeccable/bundle/blobs/5515d5210fbe2ef64e611ef2827a7204b7cea2f9df059f3ea499931f45065d93 +104 -0
- package/vendor/impeccable/bundle/blobs/56285b28b0ffe471761c2ad062d3f933ed2346ca1b617f1323a30fed99a1a852 +24 -0
- package/vendor/impeccable/bundle/blobs/56500b1f9d2fcec8324d7f448d813048b5831a46d3feeb1055bd3eb17ec3660f +70 -0
- package/vendor/impeccable/bundle/blobs/56cc1bba51e6805de370160ce4a9399fef3740571204f13c3c751725870305e5 +113 -0
- package/vendor/impeccable/bundle/blobs/571526fd5c60a586ff65bdb3f8333f26c36ae227f5f5ece826f4a43b4d4aee0f +325 -0
- package/vendor/impeccable/bundle/blobs/571f5c3bcf01c9b1bd02ab853a54db3f88375c4b8f39dd67d53e983a33e08bb7 +26 -0
- package/vendor/impeccable/bundle/blobs/57e28934208e3eac653ab59c5c6a5e4eace44906d8ac86472988242d777ca5a1 +54 -0
- package/vendor/impeccable/bundle/blobs/5855d7595b0212bb8d521e0265378d437df8d2343d5f8a30408c3edde0a14d96 +85 -0
- package/vendor/impeccable/bundle/blobs/599afc25c1d6d083e4d4e60e1617ab05f6c5ecd52be75473f3788063219aa174 +31 -0
- package/vendor/impeccable/bundle/blobs/5a07d4769a741cd00fdf8c95b943ef072eb12cd0c9e2c2d2622d5fe0a4fa3894 +46 -0
- package/vendor/impeccable/bundle/blobs/5a9626fb8c1e9051155c68626fe7c765a55be325113245d44b4991fc3d3b014e +44 -0
- package/vendor/impeccable/bundle/blobs/5b5dcf7029376ee6fbcf13e5975eb828dd1dbf41736c1bd5017dcda8173b1ebc +325 -0
- package/vendor/impeccable/bundle/blobs/5be952da521a2d5fb799c834d14ce5388284374bc23c5efcec737a05aa65d878 +84 -0
- package/vendor/impeccable/bundle/blobs/5c036648951d555e73be63161e5c9edcba146d8e9f64b1604ffdea765cde5d9d +131 -0
- package/vendor/impeccable/bundle/blobs/5c4cd151c97dae824a039211d7ccfba4c572b76d8f079c6186ba1dd5dae7732b +54 -0
- package/vendor/impeccable/bundle/blobs/5ce0631eacaae6d9fbb23ade26a774a20142cb40d3a8d5608a3fb9dbc4116b60 +806 -0
- package/vendor/impeccable/bundle/blobs/5db17cd013c10dca0012bc18aee7276280941579aa50757682e9ce60c4f7a006 +104 -0
- package/vendor/impeccable/bundle/blobs/5e354ae11913d5846faa3681a9ed98b68d1881fbbb1ecebf0769e3010bb0a426 +42 -0
- package/vendor/impeccable/bundle/blobs/5e6eea05456108b8766cf354dda998e90b6a5ecca7f15d807e28659ee78c306f +42 -0
- package/vendor/impeccable/bundle/blobs/5fae7f8a2fc3ddd49ad0a413446dc44daedef5b6b7de5eb935bd2fbfad646d58 +92 -0
- package/vendor/impeccable/bundle/blobs/634257e766b1fecacd25e27dbfc7e21ef3b440b01e94e92b8b17711018d8a661 +152 -0
- package/vendor/impeccable/bundle/blobs/6428239079f98fd6500e9fd032dd289b52052da7a4364ff357b0a5341b6444db +63 -0
- package/vendor/impeccable/bundle/blobs/647bab2f5cf6279d58d808f4df05d1ac63c1c86c6df9d13406ae776458653995 +42 -0
- package/vendor/impeccable/bundle/blobs/64802d14087fc96b38ef3881fef8098b36068d07f3b942031637b18eef3dd2af +84 -0
- package/vendor/impeccable/bundle/blobs/64807d8f43267f4ed879e997834bbf793bd4605ba1dc65f4b545324b660a7063 +80 -0
- package/vendor/impeccable/bundle/blobs/6528f2aebe4a425b724de293c8f6dc8a42ca80c7f1ed3039b8b9a813b004956a +87 -0
- package/vendor/impeccable/bundle/blobs/6575a657642ccdab42d0743ceaee06621c77811b4dc4f21c616e28aabf5e28ef +42 -0
- package/vendor/impeccable/bundle/blobs/66d60356172ccafdd334fca9bf33243c8409216a733dcde0d66a24fd70ee8132 +1 -0
- package/vendor/impeccable/bundle/blobs/68c5636a7858dd0b5137a9229c15e25fdc2ee40a0f8a4e9d809f78e809256262 +327 -0
- package/vendor/impeccable/bundle/blobs/696c15f96d49a03091b71a408151a3297521f7a8231b98ca9b1103667a0b5f89 +80 -0
- package/vendor/impeccable/bundle/blobs/69be9bb887f4d8ba4ead24928f9b97d122c796e731652fc0c08f195ab8ec2815 +105 -0
- package/vendor/impeccable/bundle/blobs/69cad1ae7355825ef320ac9638a1c9675ba9fda01c9a0fa12244cc4a1973e550 +214 -0
- package/vendor/impeccable/bundle/blobs/6acc0bf221a4ddc6e5c6438348920b2ca2393b29c4314dbde2cdc23f2b1a9639 +58 -0
- package/vendor/impeccable/bundle/blobs/6bc62a59f6fef0b749927c8d10e9849ab2411199d86d70772a86f8e83ac309f5 +29 -0
- package/vendor/impeccable/bundle/blobs/6c382f8283756e8a693d832b750f7e4cbff1ca5bdcc3825b2b4ef4da9f21876a +94 -0
- package/vendor/impeccable/bundle/blobs/6c9ce3e27ec4520ead001da3aad2a2ebba481c4e5cd22873db8890259ee579fe +95 -0
- package/vendor/impeccable/bundle/blobs/6d21d8e2729effaecc5b6239dadbcffb1ec8d51e8bdadeb47a39827266a61c5e +26 -0
- package/vendor/impeccable/bundle/blobs/6d368b679a0ed1815812815de65863b5840d419589dfbda06224c01149240287 +258 -0
- package/vendor/impeccable/bundle/blobs/6d9258a49c0b0583ec255eeb1092554298d5eea676fb9391f5a5a1377c3fd770 +87 -0
- package/vendor/impeccable/bundle/blobs/6e7e3b7c4cf331cdb43f4546c164acd6c45a267ce3289dcfa87e13202d98c747 +104 -0
- package/vendor/impeccable/bundle/blobs/6f4dfe968f47302ea64dca0e02f8c6d81497d93e4f436d09236e305456cbcc02 +87 -0
- package/vendor/impeccable/bundle/blobs/6f7f1639a933ed88e116aa8ab0cfb951096930d14f413349ae22ed04e28d2358 +46 -0
- package/vendor/impeccable/bundle/blobs/706c68612a7c6b899a0abf0b407eca7cabcd371deae60f830aa38aa86947694e +84 -0
- package/vendor/impeccable/bundle/blobs/713a942482531ef8ef103adf48d9decd7327697450e444289aa0479458e4ee1f +101 -0
- package/vendor/impeccable/bundle/blobs/713cac92a71ef45e8b700180d881f830096cfe2b0615e79b276ccc4a12c051e0 +80 -0
- package/vendor/impeccable/bundle/blobs/7212014fb2477d1d54aedaa79cdb861071a58afb2ae6d4dc5a495fa4810c6f8a +46 -0
- package/vendor/impeccable/bundle/blobs/73549b5536699c915156339976192fb38534bb43158cf9262ff5b89090388c64 +806 -0
- package/vendor/impeccable/bundle/blobs/73bd60faec1d8360753595f1ee9e970b44933448202767d7b0e87c275d399396 +6 -0
- package/vendor/impeccable/bundle/blobs/73f8bdec7d9a97476fd7d7e0b4114b5c3e9c7b84c22cbb876cd18c3e64a9b8c5 +42 -0
- package/vendor/impeccable/bundle/blobs/745b1f74877f6b3445da48af65dc45c66c3daa7738cb9a928aaa900889c2a204 +104 -0
- package/vendor/impeccable/bundle/blobs/74e20b26c29242bbebf79760315f7f0788e001566695618cfc70805484c6f92a +111 -0
- package/vendor/impeccable/bundle/blobs/754e9f0aa2101245a83cb17d8cc5bc49cf87997b29a83dedbfff283dbd0a8c4f +44 -0
- package/vendor/impeccable/bundle/blobs/765d3e890cd7f58ca94b6834181052166e9c4f9ef06278dc241da4d64da2d595 +113 -0
- package/vendor/impeccable/bundle/blobs/778cedc9199b407d3e23fa1041e38d548b00b1101a33517aa2a2eb299f9d0edc +26 -0
- package/vendor/impeccable/bundle/blobs/77ae09542fbc10aa4e8b119d6fd19359908a47c13c30068d6a150bfdb50e3e10 +24 -0
- package/vendor/impeccable/bundle/blobs/7848f40e224cf520bd8554943c9816a1ff8c97b1db57af0844e3b1ebb223d91f +416 -0
- package/vendor/impeccable/bundle/blobs/78c236dadb7e70337dc9dfa67e65fc15b7abed137ad320c16410ddfa7aec34f9 +131 -0
- package/vendor/impeccable/bundle/blobs/79114c6bf78b5a1838fe19bf033f3be85b232560eebf190ff8586aaec34ea170 +105 -0
- package/vendor/impeccable/bundle/blobs/796bbd8231413fcbf22eb7e6f40c402842aa4b10b1894545a7b05d9201ca7c4a +152 -0
- package/vendor/impeccable/bundle/blobs/79f85e381d1d6fdc8d39f54e1c8753fccf19b4ba3abb9827b6a7cc61eb376d1f +416 -0
- package/vendor/impeccable/bundle/blobs/7ad26830c7399a118cdbd4465a5426bc1919015aba99fd15959dc6deb8edc8d6 +80 -0
- package/vendor/impeccable/bundle/blobs/7af7fcc09c6b14f26ba78734460a2f9dddd2dcd2e2fa0c47c682f539e2f4cad5 +24 -0
- package/vendor/impeccable/bundle/blobs/7b1a4cc5ce94837c8309962a204c47361927e442b7a1c3cc472f90276eca8b8c +63 -0
- package/vendor/impeccable/bundle/blobs/7c417abe75f0ce4341b6f5acbadcafbbeabcc32cdb13c930aecc5cabda9f9242 +26 -0
- package/vendor/impeccable/bundle/blobs/7e36403ed58e0e82c0e42bf2fbea1c066b8e63276978647a6f1e44bf1edb23fb +63 -0
- package/vendor/impeccable/bundle/blobs/7fd1617d5a86b7a1a0bf9d6e291b334ac41a3efce31031eeaef11de7cd7e75b4 +325 -0
- package/vendor/impeccable/bundle/blobs/80191b3580a996a2045105976f728e0f46de22c412fc7640741add9767b2d8f4 +101 -0
- package/vendor/impeccable/bundle/blobs/808291e15746c9a64d9ede3ad3f06664b0a72970aa95052e064a96f1bfbed361 +54 -0
- package/vendor/impeccable/bundle/blobs/814610dee1081abc4213476ff0c4ae3e8f457909550d250ea0f89953687c85c6 +63 -0
- package/vendor/impeccable/bundle/blobs/8157b5a376e46980117f1ad6d08b24ee7be966f5de64b041bd213d486ea8c077 +26 -0
- package/vendor/impeccable/bundle/blobs/81666fc7f783b4e3514db6554e713dc0479bd9cdedb06e93d15f8b579aae869a +105 -0
- package/vendor/impeccable/bundle/blobs/835f19a0a3812f3652dd6979a2ce5597f654fd01f26e1b420b92d5f42b997ce4 +121 -0
- package/vendor/impeccable/bundle/blobs/8373668da1aa37c39888809ed9e834a7edfcb884af12f74934c270d004fba626 +85 -0
- package/vendor/impeccable/bundle/blobs/83d614fec61078175383012a088f49a9c0bb08b9ebd2b651c77cb94a323474ab +42 -0
- package/vendor/impeccable/bundle/blobs/8449781319a33d4a10a7fab9bfa4812241c303b95f33703b300b097dba51089a +152 -0
- package/vendor/impeccable/bundle/blobs/84a06415956986cb215139b3efda7b3c7a5bb6f502a3b3d9300f0744a970e620 +99 -0
- package/vendor/impeccable/bundle/blobs/857c4a0db5859f1fa91152db684528299dfc552525f50f416d1625a270e12671 +46 -0
- package/vendor/impeccable/bundle/blobs/86d10faab62da852aa1f4304157871545c853da708b6fe61c80aefb552c1f300 +84 -0
- package/vendor/impeccable/bundle/blobs/871a8e4d749b807c693ebabd83defbd6c76e1bd2a0f53a28a460cb1308ba8634 +318 -0
- package/vendor/impeccable/bundle/blobs/87b3db688c7963898bda8096f7868fed05ec5a0a80d14298e8b906b70cdf9c42 +416 -0
- package/vendor/impeccable/bundle/blobs/881a58aadf300bcc8f4947243e82192ae8dd7f14822a70fabc84fc74a5f9199c +46 -0
- package/vendor/impeccable/bundle/blobs/88549c11ea55d5dfc9f551db9a9c270d7362a9d42aa83db7747c9a7f020e1255 +46 -0
- package/vendor/impeccable/bundle/blobs/88749ebbe9bc87250765a07c2b959508262bd0e276ad60baa53e6e48c3579143 +806 -0
- package/vendor/impeccable/bundle/blobs/8a2d316593a631579bbb2f3fcb90d4488f85e97f69698dd2dd4fb50766f537d3 +325 -0
- package/vendor/impeccable/bundle/blobs/8c06daf096984cf71cf4133ea284dd6eaf503208da828816836ea41dfb69a234 +80 -0
- package/vendor/impeccable/bundle/blobs/8c34f78d71ac02c99303c7e0ca9ef30341aa9ecdeb75804dcba7e36a127914c1 +84 -0
- package/vendor/impeccable/bundle/blobs/8eb39a13e3d3650d4261f8fb06e91d6c0b888ca12ddbd3a5610cd8f0b05ad176 +69 -0
- package/vendor/impeccable/bundle/blobs/8ff60b8b5369d364f732f8de10479a39294e65341b3e0b6497b21de5c8e34b2d +806 -0
- package/vendor/impeccable/bundle/blobs/904859c8160b02330b04db23a8eeeb4ef55bcaa10f5208b8d73a1718334633e7 +84 -0
- package/vendor/impeccable/bundle/blobs/9205e222bc6565b37fb504ceec93233c2d2a456802b69d16e6b1c44723907c4c +5 -0
- package/vendor/impeccable/bundle/blobs/9287af96048c58ed0e72493cf7eb90c3957d4ba8b19e70ecf5d1f54264e9e597 +101 -0
- package/vendor/impeccable/bundle/blobs/92b7ab84c828fa888f4882c417c3d7f8fde2e5445b40f96f4fc8181a3e058afc +101 -0
- package/vendor/impeccable/bundle/blobs/93c53421c3376f695fe9dad5c82102f74bb5dd15e4ced81bb4ad50a71e5f1027 +24 -0
- package/vendor/impeccable/bundle/blobs/93eda27117930692a20f668f1cb0a80b7e14ab865998faba567cd721116081d4 +84 -0
- package/vendor/impeccable/bundle/blobs/94b4ce6299fea93d9f256b2d25705961a76bc5ea940c56db4145686ebc99df1b +89 -0
- package/vendor/impeccable/bundle/blobs/95b07450ad1ea0b7adc369587b06e52404945bbaa5d87f7491fac7ffd0e6e2ae +11 -0
- package/vendor/impeccable/bundle/blobs/95f0c7935a6d0375e09ae67ae0066c0ce7b583bf1d445d268cc4d2f4f900b1bb +113 -0
- package/vendor/impeccable/bundle/blobs/960cb922bc934adbf9192e9428ff6bec1f382038166f02a785939c93b7391067 +139 -0
- package/vendor/impeccable/bundle/blobs/96e2e6bd4fcf9a2c6da65fb029f96d9176308fae2efd9d8653d3b8d838960e07 +44 -0
- package/vendor/impeccable/bundle/blobs/96e508039c719c0815701c36b8418b18baee1967f915fa29b23b84861ae8ea94 +127 -0
- package/vendor/impeccable/bundle/blobs/98384b78af087855dbb526ec1e870a676ecd87f57237643dfea815317dad8a07 +26 -0
- package/vendor/impeccable/bundle/blobs/98afc4c6da252e90c6b783079b6f157bf94a13dd4351392e881edd2a100edf6a +105 -0
- package/vendor/impeccable/bundle/blobs/99e4a6facdb07986aa721bda8a4e35466b30091f32e38d7a71d9fcbe3591f65a +45 -0
- package/vendor/impeccable/bundle/blobs/9a2c08ee2516d2ee87129e7ebe6a0895f9990c9852d1f6fa7e70be9a6a88a659 +234 -0
- package/vendor/impeccable/bundle/blobs/9a4aa0d4903eabee987fdc92053466ff7f6eb0604797aee0efe67d67999b3eae +46 -0
- package/vendor/impeccable/bundle/blobs/9d45e5f6c082de6df4a2cfff11deb969715c49b5d9891d100dd1b2252c5bdcdd +152 -0
- package/vendor/impeccable/bundle/blobs/9db3c0857f4c2c8877b1fe24a47a229fee0de76ec9057bd8ee95f0677fb58d74 +26 -0
- package/vendor/impeccable/bundle/blobs/9e161532dc6731581d7a5f35bda5a2865e5248df7aff90e6dfc9221409893e35 +54 -0
- package/vendor/impeccable/bundle/blobs/9e82126a2e08aa365f9c430d383cf6e1921e04d1e0a1b5777716ff97828cfad8 +46 -0
- package/vendor/impeccable/bundle/blobs/9eb03b319ce7a2b281bc85ed1b0a437eb05ab2f765fc267354f9f9e6cbfadc25 +806 -0
- package/vendor/impeccable/bundle/blobs/9f1151faffbaadba0ddf5c09a4b2a82c9a12c900a2c1a9dac9863ba9ba0f420e +54 -0
- package/vendor/impeccable/bundle/blobs/9f2993499adadfdef4065a9a7fb69c75f888d892d4ee6bdbe62619bc772f495c +24 -0
- package/vendor/impeccable/bundle/blobs/a1a56df5fd51be403ca85a2f8054bb6f2bfeee443556c7798c2482e412fb6a09 +54 -0
- package/vendor/impeccable/bundle/blobs/a1af8b8a97665a3692eb39872c235796684a387a0b83785872f81aebd9dab046 +152 -0
- package/vendor/impeccable/bundle/blobs/a27399e3056c77a28ddd310fb5b4dee6e8e440dfa1737f7e38815097bec4c3a9 +46 -0
- package/vendor/impeccable/bundle/blobs/a423108e7e31a54564e2e0794186394f842625fd9f7d7ce6e6615362511503a2 +93 -0
- package/vendor/impeccable/bundle/blobs/a4cfd2330c8cca94b62986679b3f9e3bb9ada0cb30c2c63c5d19c6039f5a45ae +104 -0
- package/vendor/impeccable/bundle/blobs/a55f016c046cb6a27c55bd7f346375aeb506a755c4fbca19a5f92dbd42309c23 +59 -0
- package/vendor/impeccable/bundle/blobs/a569989e6a3d6453b4c45e9474e162a15cc54e11732ac6baa7990a6e7cccc0b5 +21 -0
- package/vendor/impeccable/bundle/blobs/a7045711a1f0dd2cd5bd98e57ff615f638d7e29738bdd618cf15e83fea5993b9 +325 -0
- package/vendor/impeccable/bundle/blobs/a75b892696469e3ccd2af33c9eef793e635efc3c5ac45336b0c1373d90c856b0 +63 -0
- package/vendor/impeccable/bundle/blobs/a7e8e60df83c6f47590467094ab2a13f1fe28ce45959a4e69dd89575a4208646 +47 -0
- package/vendor/impeccable/bundle/blobs/a7f036f4217933db8a96cf2f0ba251b15f388839d62bcf95720ce0b7152dd185 +806 -0
- package/vendor/impeccable/bundle/blobs/a892e337eee548d53252abb72ba5aa85cbcf556ffd8dc74e05534652c010d574 +24 -0
- package/vendor/impeccable/bundle/blobs/a93397adc906e245c69b42d4b25931fc92dc75baa60ca9a3749ba23b52ba01a0 +88 -0
- package/vendor/impeccable/bundle/blobs/a9856cb40da6519b1334bcfc75a4fbe83bef39ca86ee6f3effcb2a96794c627c +127 -0
- package/vendor/impeccable/bundle/blobs/a98b397cedeeaa1da57f3395b3d9b6c1fc477f4247fb9dc13e4da3da588283ff +54 -0
- package/vendor/impeccable/bundle/blobs/a9d2203acd45ca33a13d5c68b02b23ed512425ac15f0e8438318ed124b43729d +61 -0
- package/vendor/impeccable/bundle/blobs/a9e63b2df611805e845e0bb1cca1a0c27e83640a78185c9fd9de90d53a539cdc +42 -0
- package/vendor/impeccable/bundle/blobs/ab80e6a971baa66342548a846ce3fb69824ef9ef4e0f26c6f02685f225d00bbd +26 -0
- package/vendor/impeccable/bundle/blobs/ac695dd89d5f1261004cfa966526f5d5e913c92fa0640d4d71cb42493effad08 +131 -0
- package/vendor/impeccable/bundle/blobs/add1bee76f897f989166a5b9ad1b38d9173248e29d668d5c885ae9a0eff73861 +105 -0
- package/vendor/impeccable/bundle/blobs/af35b5fb6e45acb6483a5fbb864c3eaa9c57bacc43857f48183c836041c670ae +101 -0
- package/vendor/impeccable/bundle/blobs/af5842c4844b692b817319d5375611d4211dc7f459fb12da358baefc3a6cd373 +63 -0
- package/vendor/impeccable/bundle/blobs/b0e1a0721a1e47675a8750cfb608138743dd9fa9c047146e5cc8f82b9041be7a +806 -0
- package/vendor/impeccable/bundle/blobs/b14dc725606717be881a058bb691c0af1860cc8ad98d48e5a4789fe1a7de5458 +806 -0
- package/vendor/impeccable/bundle/blobs/b2732083f8f1d1924d38f84f179491430aebda8e0fd1f1d0785e3f883bcf3a40 +63 -0
- package/vendor/impeccable/bundle/blobs/b29e10f4506af2277739ad2373bc91c9fff41dbe76c9907f45152b4178cc6b6c +105 -0
- package/vendor/impeccable/bundle/blobs/b2d71ff0df7ed49e06dfc4acfce3d3f7eb48afa68be04763ee8c08354df50a07 +97 -0
- package/vendor/impeccable/bundle/blobs/b2f60e0154bf0e687badc46d8c8420e2118a9a6e21162050722be779dc02cb6d +111 -0
- package/vendor/impeccable/bundle/blobs/b314a0c5bd844f6471ea3031aeb9299674d972fbdd1615d99d16478de437d26d +84 -0
- package/vendor/impeccable/bundle/blobs/b3b1d5a4c80ce279d88896601deee9ccfeacdae0d0cd433600985a5f7ac93c72 +26 -0
- package/vendor/impeccable/bundle/blobs/b4be5499f404a926cdd2c55d8fb7409ba74a56b3d0c7d865594cc0254d3e499a +42 -0
- package/vendor/impeccable/bundle/blobs/b4def5b57733b6ba233570bd5691a536901f8b15479fc0111a2cde56224d0e1a +325 -0
- package/vendor/impeccable/bundle/blobs/b5f4fbb4a044c3f5ec14adc847222488f00fccabbf79ecd0b21084c8d319d616 +105 -0
- package/vendor/impeccable/bundle/blobs/b626e0677288a1660e9ce80c4f0454b527010239681f6b8dcc0f36b4a4d6bcb2 +113 -0
- package/vendor/impeccable/bundle/blobs/b6a2ef031313d3848ab2928875298550836f0f9ff7bdf5772e918c5c610ea448 +806 -0
- package/vendor/impeccable/bundle/blobs/b6dfd3df9a371e7d179d365cc1d72c11d4ed91b6507c0e1dbec0843419542f66 +84 -0
- package/vendor/impeccable/bundle/blobs/b719be9c5d4ced5d649ec6c0c90630196e7ee513d0da482aef13c705fdc23ab6 +113 -0
- package/vendor/impeccable/bundle/blobs/b7fcd2b03539d1029c8774fa806e6f4c677448e9e97e15f69b066022536c5491 +80 -0
- package/vendor/impeccable/bundle/blobs/b824bb76a657d3edd65e89807dcb21a3679eab39292423066e11368b35afba79 +325 -0
- package/vendor/impeccable/bundle/blobs/b8938fea3399aa639b4c873248035c219658069eef7be62672254e2f72c056f4 +42 -0
- package/vendor/impeccable/bundle/blobs/b8d49a3cab3428d9f351502e9c2c5802cef187e0d2af626ef3e1cd1837fd06bf +105 -0
- package/vendor/impeccable/bundle/blobs/ba0d96d88ab40fad1cb522e60b11affc568cfe9d340110ac5e71f834ac3d0f4a +42 -0
- package/vendor/impeccable/bundle/blobs/bb069b43c09109d7031b0374e31955749fec657b252d39782f11e8985aca2b51 +131 -0
- package/vendor/impeccable/bundle/blobs/bb36665889124a0b6e15f16045265737449c3bdcf2712cdb08af3cfa01563e2b +14 -0
- package/vendor/impeccable/bundle/blobs/bb59a1f78f3d2aa78e4b024fe203117155f50946a9e4bbe65c1b3b3abdcee356 +104 -0
- package/vendor/impeccable/bundle/blobs/bb9d4bb369216e892eea25adeaefc5a3e09bb4abd31e3475b79e47b3aee2a6af +806 -0
- package/vendor/impeccable/bundle/blobs/bc48bca63dff44e1f0205bafb64e16b2d6fb294ace405dbc9ae06a3bc6107154 +113 -0
- package/vendor/impeccable/bundle/blobs/bc5f71f1129d0f2c310d913d07c8dc609a1d25644121bd78c308f42d52a0b9e9 +86 -0
- package/vendor/impeccable/bundle/blobs/bcc05ea92faebb5c74037a9d4263a5ce9a56f5ab07c8ab3c59ee704d8cade745 +24 -0
- package/vendor/impeccable/bundle/blobs/bdd676c8f29295addfdbceaab285bb1184ec3ef7ff60501908b97ea8269580c4 +85 -0
- package/vendor/impeccable/bundle/blobs/bdf9a59beea111ac6f98f5624854feb5a5a1d60b1989edbbfabf3dc6f357a7e6 +105 -0
- package/vendor/impeccable/bundle/blobs/bdfd2a879ca65e437481eac5309f2283da225121630935d89ed902cfdf470c8e +105 -0
- package/vendor/impeccable/bundle/blobs/bea6ebfda78c51b9cf372097a1d77431d0f6bcd96eadec13a2ac95afbb87fb6d +104 -0
- package/vendor/impeccable/bundle/blobs/bf3b8883f8550744e08754af82a78939ab8b1237e5fad6f38d819e2f17e8a389 +104 -0
- package/vendor/impeccable/bundle/blobs/bf92a4a51b29de9661c5fa82f3d79244718a67d385ef661990f0c4a5b367e843 +104 -0
- package/vendor/impeccable/bundle/blobs/bfc51972fbf387566dc9e29c8b1af479a66ab401fdbce659fae9e6a5a9d85316 +69 -0
- package/vendor/impeccable/bundle/blobs/c06effcdc60859157208d3b7ee23d56160f2386f6a2dfa2514ba82fe21828ae0 +24 -0
- package/vendor/impeccable/bundle/blobs/c100b67a4ae248ad564182b181acb1ee2fe64c00049aeef62d4e7a3213726f37 +26 -0
- package/vendor/impeccable/bundle/blobs/c1cb6877ca99a0c1b38ba0c7d59f32702d3022f6821d8045f7133f7c40b6362f +242 -0
- package/vendor/impeccable/bundle/blobs/c1f3766091019b6f9183bc1d11b1e0fe03d44c168dc05a682c55df32f904dcfd +33 -0
- package/vendor/impeccable/bundle/blobs/c2dfc965319745c403b99e00e9e97de15f1300ea721bd3f708f0ac47aadc537b +101 -0
- package/vendor/impeccable/bundle/blobs/c327bf17f2af186f87164dee5fb5468746a9b137f0b604365d531ac9387f3712 +325 -0
- package/vendor/impeccable/bundle/blobs/c6b3bc811eb23d90ff9add1e0e5b40999a0bbbab364f5e6d08061f36d30429a5 +39 -0
- package/vendor/impeccable/bundle/blobs/c6f15d20d8d8748c4c475ff70cdb0ee426f2e6c9e7eab6169311f4dffd279ea1 +54 -0
- package/vendor/impeccable/bundle/blobs/c83d6a13fdfb58835c845f61aed3fc6dca17b5569d33387ced840bc13424f354 +84 -0
- package/vendor/impeccable/bundle/blobs/c9284892cb1f21aaeaf93fdf2e9e7a679d05e0baa8ddf309a79a9790d262ad38 +806 -0
- package/vendor/impeccable/bundle/blobs/cb8caddbb3919e5bf7f252143b519fb16db28a244642d937b186cb89962d9201 +828 -0
- package/vendor/impeccable/bundle/blobs/cbd8bd68fa00935dd0f179adb169252629cf7ee443ea9dc7db77e7ef2cf77446 +4 -0
- package/vendor/impeccable/bundle/blobs/cdf8a88b9865599c58fe285041d2d46eea7d9bd2d4075d82de358191742b20ad +46 -0
- package/vendor/impeccable/bundle/blobs/cf3d3a296890ac1ee363fee930f252e20d0935cd575367ad017b3cdc2dc5a50d +26 -0
- package/vendor/impeccable/bundle/blobs/d1366aa4802b364893c2a14b16fe95c3b7fab79f9f69eb272fd1538f7cb1ce2c +105 -0
- package/vendor/impeccable/bundle/blobs/d1fbd55074abb2251bdaa03749d34acc42c38e46e47549f18f5848df57d43c42 +86 -0
- package/vendor/impeccable/bundle/blobs/d2455359baf5f9e75360c7094e28a16937c8674619e07d58f30d2b5abfd31e53 +105 -0
- package/vendor/impeccable/bundle/blobs/d2e16da9bb6b33c931378d1bf57dcfff5dc426a71434bc352cec6aece715a66f +152 -0
- package/vendor/impeccable/bundle/blobs/d4a9e18a879bbb92aa0a56e16b45481090dffa4470efdecf52fb0da8c900be5d +46 -0
- package/vendor/impeccable/bundle/blobs/d57c3e0453f601ad688911fca4471057c7b46b561fcd42a1e12a581101c5186c +41 -0
- package/vendor/impeccable/bundle/blobs/d5f83912eda93d42f93522bb74aeff0ea04d9c559577ec52fcccc130dd03166d +137 -0
- package/vendor/impeccable/bundle/blobs/d6489d7f3e607ce3f8514a7a7d3a0eb5e8f1ac55859eaf7d5c31b53de8fab9f3 +152 -0
- package/vendor/impeccable/bundle/blobs/d658c48ffbe0031e8e3b318996cad6ceafe29e40aa50d5bb25e4bf1d6839dc7c +89 -0
- package/vendor/impeccable/bundle/blobs/d6a1fa1689642a6db9027493747d7ed54f9e0cae660472022c0a0a8dfdead3f4 +54 -0
- package/vendor/impeccable/bundle/blobs/d6a51f4df6d76f16b95ab81268a689f4c5936d505c5bb25c80ad7423f927bbc6 +47 -0
- package/vendor/impeccable/bundle/blobs/d7211a816aa8ca1111701930f7cdab82b4c8caa94c9a37522c1d7945209b01c2 +84 -0
- package/vendor/impeccable/bundle/blobs/d7b99a57652cb8741d57a15ba7e06de4707fac02a97e5e001179da007272f2b8 +113 -0
- package/vendor/impeccable/bundle/blobs/d87879329982d608866e4babd31c61438ec34c68483e529761fbf420203eeebd +104 -0
- package/vendor/impeccable/bundle/blobs/d9963fd73bf6129fe0c8ec25c5148f50617ec85683b8eeae7e411c9a42e2db33 +137 -0
- package/vendor/impeccable/bundle/blobs/da3b2399814db89d67959268c646601957d3e8c641b09a5bdbce84217c1c2cfe +46 -0
- package/vendor/impeccable/bundle/blobs/dc3aeccbea3e997704ce8b170f56b0eaf343a14ad4fedb22a6dbee0f205aa37f +47 -0
- package/vendor/impeccable/bundle/blobs/dcc1572e739cdabcbf084f276b447cb686aa18459896e6d8fe29f4d7d807bd1d +46 -0
- package/vendor/impeccable/bundle/blobs/dcf7340da023e64144af5768b8bf44ecf45b1bfdec12d3b1c9e6618f17f8c60a +131 -0
- package/vendor/impeccable/bundle/blobs/dd66761b291c7dbca6e9efd22023e38f8c53ad310f3a6cdab5dc7ecd7ae8f31f +84 -0
- package/vendor/impeccable/bundle/blobs/dd953992625c240fd1842aaf533a865aabd09487cbc16fa01fe8bb4b4365b843 +101 -0
- package/vendor/impeccable/bundle/blobs/de1b7404f4cdfd7b515196afb17b74b1980f0bc88cb8681ae93a76ca48ec7bdb +167 -0
- package/vendor/impeccable/bundle/blobs/de70398719140e4951aa111e9625de5ed916ad1ef0877e4ab6f6b4a7e3cc5f8f +154 -0
- package/vendor/impeccable/bundle/blobs/deaaa533475b6a9f7dd52e01a1f1997aa3af146694334981650f8c846f939559 +113 -0
- package/vendor/impeccable/bundle/blobs/df23e9ee5b689a05ed88f42e9a36aaffa2e6e28b1d56e2832acaa1d3603fd363 +105 -0
- package/vendor/impeccable/bundle/blobs/dfd6f341b156bc604e7556b27cba437d5870fbc82d4c673d0127cf18151b2226 +99 -0
- package/vendor/impeccable/bundle/blobs/e02ba7f4417e84b3bd5ec65287c4a14cf163ca3ac6f8ee37d8f709d0c8b0b6d2 +84 -0
- package/vendor/impeccable/bundle/blobs/e07176229b8a330970ca3c9c5e3dd68c2aaeb726285e30f471e91053d7f8e798 +24 -0
- package/vendor/impeccable/bundle/blobs/e1075ea5b34ac9c60f7c5bda97356eeaf1b683b599592d324fd3704f0852ad7a +152 -0
- package/vendor/impeccable/bundle/blobs/e26ddd48211aae08fe6debf2a7a4308aa081ed224668cde528e451888db0e3e3 +325 -0
- package/vendor/impeccable/bundle/blobs/e2e275495354eeccb7e59af7d74e2ff1f371839bd6aaec1266428760995fb24c +104 -0
- package/vendor/impeccable/bundle/blobs/e3af212117e0c552b0976687200fe8f95846a01725a482e8e4dbfd75e40dbfa6 +26 -0
- package/vendor/impeccable/bundle/blobs/e3c2031978cd670d7150ff3140f12cf8b6882ef638ea9a9985caffa9a80c8713 +63 -0
- package/vendor/impeccable/bundle/blobs/e44ca51f24c4736f9aee6024182b0409aa12ec94812b7ec94745e0999ed06a70 +29 -0
- package/vendor/impeccable/bundle/blobs/e68467ba99684d8c975a8a2725145d29db41d70659c7544ea54cc6632660cea3 +127 -0
- package/vendor/impeccable/bundle/blobs/e6e18e7c23cfe82961d90b9714cb466c20bd83f222ac63e9339b6b2c304e1787 +26 -0
- package/vendor/impeccable/bundle/blobs/e71524578eb2bda3b8d2da3d8b8371239a2179c5fa866f9f7e48bcac45a8cd6f +84 -0
- package/vendor/impeccable/bundle/blobs/e7af7ad18b307a3171fcf49421df2a557f93289d27af2430f10ee74e2a2fc2d3 +101 -0
- package/vendor/impeccable/bundle/blobs/e7dd10af2c3c18c60dc20734d55ff870c323a10dadd337600f7bb980fc6b53c8 +327 -0
- package/vendor/impeccable/bundle/blobs/e802e4f7bdc89050a9c0f2ca506e1d493a2316e6e810c0336c57aa073717ef3e +50 -0
- package/vendor/impeccable/bundle/blobs/e85da3098368807689009184eca2bb09a91bdb6cb1be3e7a61f91f1ae31cd69b +152 -0
- package/vendor/impeccable/bundle/blobs/e8720f3aa41135211cc58cc299a39eeda86c75651f4279cc1ede8db10dcc0584 +98 -0
- package/vendor/impeccable/bundle/blobs/e8ee6c08e94b80324173d89d6f4cdc5b4829ea6858b3a11fc186588a490cada4 +46 -0
- package/vendor/impeccable/bundle/blobs/e9861052457cc1ddc42c687bb8c33a877834ced94fed74af2a4f00f6bae50795 +101 -0
- package/vendor/impeccable/bundle/blobs/ea8432c90c30ecb0426662a681ead5c0941113079704e1a766cda09e85b15b4f +111 -0
- package/vendor/impeccable/bundle/blobs/eaa50e8cd95e00a94a257db2bff4eafd820696ba75a08a384a00517c3402924e +325 -0
- package/vendor/impeccable/bundle/blobs/eb3e86876c20f1cfc443dcbe48d8f41fea6e815082a304610be432272429a06d +42 -0
- package/vendor/impeccable/bundle/blobs/eba472f6190541c28e2e647ed019f43564ba5b92d629963f34c899175b25b31e +46 -0
- package/vendor/impeccable/bundle/blobs/eba609589a5a051643a7bae60b7cceef7cfe44d0f8bd9229e61473ac75910fb3 +24 -0
- package/vendor/impeccable/bundle/blobs/ec6338b20047099601e4bac8b2efcd597f800d5e437259f6c15d23090400621b +325 -0
- package/vendor/impeccable/bundle/blobs/ec81b008d2641402e3352b09b1a90562ef7a24598d7c5aded475038cce63aca0 +24 -0
- package/vendor/impeccable/bundle/blobs/ec86b8633fbeb14ef2272f220fdd98089972b03b99da83e49eeb6a8b73b00617 +113 -0
- package/vendor/impeccable/bundle/blobs/ee6d6d127c1c2ab3526d529a8e3698be2185b5e346ac617f37501de2c0698b97 +99 -0
- package/vendor/impeccable/bundle/blobs/ef2dde00030580ed2765cbf7be9b2ea4a6f64cb915b804fd6f6abcf38051c7b9 +234 -0
- package/vendor/impeccable/bundle/blobs/ef2e97cd690baf6fe5c895dd2d8844aff9fcc4a8bc04973402678a739c81d712 +90 -0
- package/vendor/impeccable/bundle/blobs/f0fbe529f63961a027bada2e6a3cbe86f4af0dba4b8e1010da22b007f9002f66 +63 -0
- package/vendor/impeccable/bundle/blobs/f1601095679d7d8cf6fef6845598c70d8734190709c1404fa0026e28fef2faaa +325 -0
- package/vendor/impeccable/bundle/blobs/f254d59ff973e907cacdc2c34b8b4de075437d292de31dac30e10a9d7035086c +85 -0
- package/vendor/impeccable/bundle/blobs/f5efb1b1dd4cd18e1d4789d7c8e0188f4342b25fffd53af6088ba8b67774fb99 +26 -0
- package/vendor/impeccable/bundle/blobs/f672ef8251a3ed4051a053d30819664951b17540b2899acd27d20e500c234abc +258 -0
- package/vendor/impeccable/bundle/blobs/f68a3d68ac92606e91aa8878e003d9432ddd09aa97ca01c6b3ce46c937dca316 +13510 -0
- package/vendor/impeccable/bundle/blobs/f7a9e3f30fe07b0d98351730e9895d50bba96dd42fe91c0d9b9a76ef62e53322 +80 -0
- package/vendor/impeccable/bundle/blobs/f7b854effc55c8f07e40a415e0d6b5c333f4042fbc849fac73d52619c8d053a1 +54 -0
- package/vendor/impeccable/bundle/blobs/f84b653ede0804d21e6210c6d21fd5352023914fedceae6ff14e20f1e93b06e7 +46 -0
- package/vendor/impeccable/bundle/blobs/f964506c0fae87b3c2c1db7016ddc9be9ef970bbcf5548d684b997b5d5991586 +33 -0
- package/vendor/impeccable/bundle/blobs/f9cbbad0cc08fb9bd69d4d3046067c6cf820b89cdaf7af8c81c671fb0a62b6ae +54 -0
- package/vendor/impeccable/bundle/blobs/fb32d99751c5fc24493ff4460be1767bd5236dc820fd337775067c0620d1a7a6 +113 -0
- package/vendor/impeccable/bundle/blobs/fb5fec24adafa48df43eece6907c1c986a4772cbdc64142c881f00c3b312e9ca +152 -0
- package/vendor/impeccable/bundle/blobs/fc149b5bc7a8d0cc9b9bf86e5013793f3857c1c302212e9aaf101cb95427386b +101 -0
- package/vendor/impeccable/bundle/blobs/fce6688138d2ceb1e3d2cde5231f54b1d8dc8748b4c95a7919aa83b6f924cf96 +127 -0
- package/vendor/impeccable/bundle/blobs/fe91fcf28638f95577af481a50edaf339d6c9a3ad3b9fa477bc81c116b8bc392 +139 -0
- package/vendor/impeccable/bundle/blobs/ff0ab1361f52d70d3ff0d23090d78794a75afdfa2f8c1cee5491dee69215faaa +105 -0
- package/vendor/impeccable/bundle/manifest.json +1254 -0
- package/skills/dev-plan/evals/evals.json +0 -72
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
# AGENTS.md
|
|
2
|
+
|
|
3
|
+
行为准则,用来减少常见的 LLM 编码错误。与项目自身的规范合并使用。
|
|
4
|
+
|
|
5
|
+
**取舍**:这些准则偏向审慎而非速度。琐碎任务自行判断。
|
|
6
|
+
|
|
7
|
+
## 1. Think Before Coding
|
|
8
|
+
|
|
9
|
+
**不要假设。不要藏起困惑。把取舍摆出来。**
|
|
10
|
+
|
|
11
|
+
动手之前:
|
|
12
|
+
- 明确说出你的假设。不确定就问。
|
|
13
|
+
- 有多种解释时全部列出来——不要默默选一个。
|
|
14
|
+
- 有更简单的做法就说出来。该反驳时反驳。
|
|
15
|
+
- 有不清楚的地方就停下。指出困惑在哪。问。
|
|
16
|
+
|
|
17
|
+
## 2. Simplicity First
|
|
18
|
+
|
|
19
|
+
**用最少的代码解决问题。不做预留。**
|
|
20
|
+
|
|
21
|
+
- 不做没被要求的功能。
|
|
22
|
+
- 不为一次性代码造抽象。
|
|
23
|
+
- 不加没被要求的「灵活性」「可配置性」。
|
|
24
|
+
- 不为不可能发生的场景写错误处理。
|
|
25
|
+
- 写了 200 行而它可以是 50 行,就重写。
|
|
26
|
+
|
|
27
|
+
自问:「资深工程师会不会觉得这写复杂了?」会,就简化。
|
|
28
|
+
|
|
29
|
+
## 3. Surgical Changes
|
|
30
|
+
|
|
31
|
+
**只碰必须碰的。只清理自己造成的混乱。**
|
|
32
|
+
|
|
33
|
+
改既有代码时:
|
|
34
|
+
- 不「顺手改进」相邻代码、注释、格式。
|
|
35
|
+
- 不重构没坏的东西。
|
|
36
|
+
- 匹配既有风格,哪怕你会用别的写法。
|
|
37
|
+
- 发现无关的死代码就说出来——不要删。
|
|
38
|
+
|
|
39
|
+
自己的改动造成孤儿时:
|
|
40
|
+
- 删掉**因你的改动**而不再被使用的 import / 变量 / 函数。
|
|
41
|
+
- 不删既有的死代码,除非被要求。
|
|
42
|
+
|
|
43
|
+
检验标准:每一行改动都能直接追溯到用户的诉求。
|
|
44
|
+
|
|
45
|
+
## 4. Goal-Driven Execution
|
|
46
|
+
|
|
47
|
+
**定义成功标准。循环到可验证为止。**
|
|
48
|
+
|
|
49
|
+
把任务转成可验证的目标:
|
|
50
|
+
- 「加校验」→「为非法输入写测试,然后让它们通过」
|
|
51
|
+
- 「修 bug」→「写一个能复现它的测试,然后让它通过」
|
|
52
|
+
- 「重构 X」→「保证重构前后测试都过」
|
|
53
|
+
|
|
54
|
+
多步任务先说一句计划:
|
|
55
|
+
```
|
|
56
|
+
1. [步骤] → 验证:[检查点]
|
|
57
|
+
2. [步骤] → 验证:[检查点]
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## 5. Evidence & Quotation
|
|
61
|
+
|
|
62
|
+
**凡引用必见原文。没读到的不写。**
|
|
63
|
+
|
|
64
|
+
- 引用任何文件的措辞、编号、数值、状态、命令或日期前,先亲眼读到那段原文;不凭上下文推断补写,不把「大概如此」写成事实。
|
|
65
|
+
- 工具回显被截断(长文件只给首尾)时,中段是**未知**:要引用就先按行范围或搜索结果回读定位,再引。
|
|
66
|
+
- 正式产物(CR、计划、运维手册、commit message、给用户的事实陈述)里每一处「据 X 说 Y」,X(文件与段落)与 Y(内容)都要能当场指出。
|
|
67
|
+
- 发现引用与原文不符:全仓搜出同一错误的所有副本一并修正,并向负责人说明,不留两处互相矛盾的版本。
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Project Conventions
|
|
72
|
+
|
|
73
|
+
本文件适用于支持项目指令的 coding agent。开工先读本仓 README、包管理与工具链配置、相关开发计划;已有 PRODUCT.md / DESIGN.md 时一并读取。命令、端口、服务名、数据库名和 App 身份以本仓配置为准,不套用其他项目的值。
|
|
74
|
+
|
|
75
|
+
### 本地开发
|
|
76
|
+
|
|
77
|
+
- 用本仓已有的启动、检查、测试与构建入口,遵循现有包管理器、锁文件和工具链配置;有统一启动入口时优先使用它。
|
|
78
|
+
- **缺服务、缺容器就停下来问,不要擅自装。** 未获授权时不下载镜像、不另起基础设施容器;先确认已有环境和依赖,再说明缺什么、请用户协助。
|
|
79
|
+
- 共享数据库上的测试只使用明确的测试库。会 TRUNCATE / reset 的测试先核对目标库;共享状态的用例按项目约定串行执行,不清理其他项目或用户的数据。
|
|
80
|
+
- `@xgent/*` 依赖从平台私有 registry 安装,配置以本仓 registry 与 CI 为准。401/404 先查凭证有效性与版本是否已发布;不通过复制源码或 file/link 依赖绕过。
|
|
81
|
+
- 未经用户明确要求,不升级依赖 Major。
|
|
82
|
+
|
|
83
|
+
### Portal App 接入
|
|
84
|
+
|
|
85
|
+
本节与下方 onebox、Portal 前端及发布约定只适用于 XGENT.ai Portal App。清单事实源是本仓的 `app.manifest.json`;`listingKey`、App 名称和 `type` 从清单读取,不在本文件维护另一份副本。
|
|
86
|
+
|
|
87
|
+
- `listingKey` 同时决定令牌 audience、安装态 appKey、服务路由和 scope 命名空间,改 key 等于换 App,不作为普通重命名处理。
|
|
88
|
+
- 修改清单要同步更新 `version`。安装期字段是租户快照,改清单不等于已安装租户已经更新;验证时同时检查新安装与已有安装的行为。
|
|
89
|
+
- 身份来自门户真实自省,解开响应信封后再读 claims;后端校验 audience、tenant、scope、角色和 ACL,自省失败必须拒绝放行。查询按 claims 的租户收口,不信前端自报的身份或租户。
|
|
90
|
+
- 接入、清单与 API 契约查 `portal-external-app`;SDK、iframe、导航和版头查 `portal-micro-app`;跨应用授权查 `portal-app-exchange`。这些 skill 是平台口径的事实源;缺少相关 skill 时说明缺失,不猜平台步骤或引用目标仓访问不到的门户源码路径。
|
|
91
|
+
|
|
92
|
+
### 本地联调:一盒(onebox / one-box)
|
|
93
|
+
|
|
94
|
+
**本地起前端不等于门户联调通过。** iframe 握手、TDT、consent 和服务反代要接真实 onebox。初始化、注册、启动、体检和排错先读 `portal-dev-setup`,按该 skill 的脚本与当前配置执行,不 clone 门户、不改门户代码、不自行重建门户镜像。
|
|
95
|
+
|
|
96
|
+
- **一台机器复用一盒**:先检查已有栈,其他 App 接到同一套联调底座;已有 onebox 时不再初始化第二套。镜像仓库、凭证、端口和目录从现有配置读取,缺凭证请用户找开发团队,不猜值。
|
|
97
|
+
- **一盒仅供开发**:mock OAuth、开发服务账号和明文开发密钥不用于生产,不提交凭证到 git。
|
|
98
|
+
- **先核对镜像版本与架构**:文档和运行行为不符时先查当前镜像;门户 onebox 镜像与自己的 App 镜像可能属于不同 registry 项目,不混用。App 镜像架构与运行平台必须匹配。
|
|
99
|
+
- **核对 App 数据库与迁移**:onebox 不会自动创建每个出仓 App 的库。按本仓配置核对所需库;创建或迁移前确认目标。onebox 没有部署控制器,换成带新迁移的 App 镜像后,须按本仓迁移入口显式执行,健康检查绿不代表 schema 已更新。
|
|
100
|
+
- **注册先于反代启动**:注册后先确认演示租户市场里出现 App 卡片,再检查安装、授权、宿主入口和服务路由。404/502 先跑 onebox doctor 与 skill 排查表,核对注册、反代与后端状态。
|
|
101
|
+
- **dev 注册不等于已装租户同步**:导航、helpEntry 等安装期快照变更后,要通过租户管理员的市场更新入口同步,再验收宿主上的显示与行为。
|
|
102
|
+
- **把首次同意屏算进走查**:「授权并打开」是正常步骤。onebox 的部署任务可能停在 `deploying`,因为没有部署控制器;是否可用以实际宿主链路为准。
|
|
103
|
+
- 有本仓 onebox 冒烟入口时运行它,随后从宿主进入验证实际功能。
|
|
104
|
+
|
|
105
|
+
### 前端 UI 开发与验收(有前端时)
|
|
106
|
+
|
|
107
|
+
涉及页面、组件、布局、交互或视觉的改动,走完设计与浏览器验收两步:
|
|
108
|
+
|
|
109
|
+
- **设计阶段用 impeccable**:先读已有产品与设计上下文,覆盖视觉层级、信息架构、间距对齐、配色、动效、可访问性以及空状态和错误状态。当前环境没有该 skill 时说明缺失并提示安装,不声称已经使用。
|
|
110
|
+
- **验收使用当前 Agent 可用的真实浏览器通道**:Chrome extension、`kimi-webbridge` 或 Playwright 均可,按实际可用能力选择,不绑定某一种 Agent。
|
|
111
|
+
- **Portal App 必须从宿主进入**:从已有宿主入口打开 App,走通主路径与关键边界;首次接入时还要覆盖市场卡片、安装与授权。确认浏览器显示的是最新产物;standalone 页面或直接打开 dev server 只能作为补充。
|
|
112
|
+
- 检查本次改动涉及的导航、面包屑、关键操作与保存结果、空 / 错状态、权限边界;涉及响应式、主题或语言时检查相应状态。查看 console 与失败请求,保留实际步骤、结果及必要截图作为验收证据。
|
|
113
|
+
- **类型检查、lint、单测和 build 不能替代浏览器验收**;只看 diff 不算完成。环境跑不起来时先按现有配置排查;仍受阻则明确写「未在浏览器中验证」、说明原因与需要的协助,不声称 UI 已验收通过。
|
|
114
|
+
|
|
115
|
+
### Portal 前端约定(micro App)
|
|
116
|
+
|
|
117
|
+
- 版头的应用图标、应用名与 tagline 归门户;App 内只显示运行期上下文,不重复绘制应用身份。脱离门户的 standalone 壳按需保留。
|
|
118
|
+
- 页面层级由视图驱动的 effect 调用 `sdk.setBreadcrumbs` 全量上报,首页传空数组,label 用当前语言解析。内部路由调用 `sdk.routeSync`,同时订阅 `sdk.onRoute` 处理宿主切页。
|
|
119
|
+
- 自己的后端通过 `sdk.callService` 调用,App key 来自清单。令牌交给 `sdk.getToken()` 管理,不自行存入 localStorage,不随意裁剪 scopes。
|
|
120
|
+
- `sdk.acl.can(pid)` 用于按钮显示,后端仍须校验权限;不能用管理员走查代替普通成员的权限验收。
|
|
121
|
+
- 跨源沙箱 iframe 不使用 `window.alert` / `confirm` / `prompt`,改用 DOM 模态框。
|
|
122
|
+
- 下拉框复用项目 Select 原语;使用原生 `<select>` 时关闭原生箭头(`appearance-none`)并自绘 chevron,验证文字、箭头与主题的实际显示。
|
|
123
|
+
- App 图标要契合用途,并确认门户注册表支持该名称;不依赖静默回退来掩盖配置错误。
|
|
124
|
+
|
|
125
|
+
### API: HTTP status code 只反映传输/路由层,不反映业务状态
|
|
126
|
+
|
|
127
|
+
- 404 = endpoint 不存在(路由层);「数据不存在」用 200 + 业务字段(如 `data: null`)。
|
|
128
|
+
- 业务成功统一 200,含新建/更新/删除/覆写,不用 201/204。
|
|
129
|
+
- 业务失败(校验不过 / 状态非法 / 资源冲突)也走 200 + 响应体错误结构。4xx/5xx 只留给参数不正确、未登录、未授权、真传输/服务层故障。
|
|
130
|
+
|
|
131
|
+
### 性能:热路径上不许 N+1,读多写少的事实必须缓存
|
|
132
|
+
|
|
133
|
+
「表小 / 量不大 / 上限只有 1 000」都不是不优化的理由——tsc、lint、verify 对 N+1 全绿,只有压测和生产 p95 看得出来。请求路径与 worker 热路径一律适用,算法上能提高的就要提高,不能偷懒:
|
|
134
|
+
|
|
135
|
+
- **循环里逐条 `await` 查询 = N+1,禁止**。同一批 id 一条 SQL `inArray` 取回,再在内存里映射;Redis 同理用 `mget`。反例(已修):typed 通知入口逐个 `isActiveMember` 校验 1 000 个 userIds = 1 000 次串行往返;Router 每收件人每 push 渠道各查一次端点 = 200 人 400 条查询。
|
|
136
|
+
- **一批写入用多行 INSERT + `RETURNING`**,按业务键(不是数组下标)把返回行映射回输入;`onConflictDoNothing` 只返回真插入的行,冲突那部分要再查一次。超过 1 000 行分块(PG 单语句 65 535 个参数)。范本:`modules/notifications/router.ts` 的 `writeRecipientBatch`。
|
|
137
|
+
- **读多写少的配置/字典必须有进程内短 TTL 缓存**。管理员改完要即时生效的(事件定义、策略、模板、lane 开关、渠道连接)加显式 `invalidateXxxCache()` 在写侧调用;纯展示快照(App 名/图标/颜色)30 s TTL 就是契约,不要求写侧失效——写点散在十几处且 worker 是别的进程,失效调用本来就到不了。同一次请求 / 同一批处理里同一事实只查一次(先整批取到手再进循环)。
|
|
138
|
+
- **不许缓存的**:发送/扣费/授权前的「当下资格」重查(成员是否 active、App 是否仍安装、端点归属)——它们存在的意义就是新鲜;一条带索引的点查即可。
|
|
139
|
+
- **热路径上的聚合(`count(*)` / `min()`)不许每次现算**:`/health` 与背压这类每秒会被打的入口共用一份短 TTL 缓存(`modules/notifications/ops.ts` 的 `laneStatsCached()`)。
|
|
140
|
+
- **事务里不做外部调用,持连接只覆盖写入**;渲染、解密、供应商调用都在事务外。
|
|
141
|
+
- **改了热路径要给前后数字**:`apps/api` 有 `notification:loadtest` 这类参数化压测,改完跑一遍把 recipients/s 或 p95 写进提交说明;没有压测的路径至少 `EXPLAIN` 一次。
|
|
142
|
+
|
|
143
|
+
### 完成标准与发布
|
|
144
|
+
|
|
145
|
+
- 执行与改动相关的本仓检查、测试和构建入口,报告实际执行结果与未验证项。
|
|
146
|
+
- Portal 后端改动验证无 token 的 401、缺 scope 的 403、租户隔离和经宿主服务路由访问的健康检查;权限改动覆盖普通成员,不只用管理员账号。
|
|
147
|
+
- 有前端改动时完成上述真实浏览器验收,报告入口、主路径、关键边界和结果;阻塞项明确列出。
|
|
148
|
+
- 发布时使用 `xgent-app-release`,镜像交付使用 `xgent-image-push`。发布前验证 release-cli 身份;换镜像带 `--wait`,以新版本实际运行作为成功依据。
|
|
149
|
+
- 发布清单不携带密钥值,镜像 tag 不可变;迁移打进镜像、持锁、失败非零退出,并兼容仍在运行的旧版本。onebox 手动迁移与生产控制器迁移分别验证。
|
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "[你的 App 中文名]"
|
|
3
|
+
description: "[一句话:这块工作区是什么,给谁用。]"
|
|
4
|
+
colors:
|
|
5
|
+
app-identity: "#2563EB"
|
|
6
|
+
app-identity-hover: "#1D4ED8"
|
|
7
|
+
app-identity-dark: "#5B8DEF"
|
|
8
|
+
brand-blue: "#0063D3"
|
|
9
|
+
brand-blue-hover: "#0054B3"
|
|
10
|
+
brand-blue-press: "#00408A"
|
|
11
|
+
brand-orange: "#FF6B02"
|
|
12
|
+
ink: "#0B1220"
|
|
13
|
+
ink-2: "#1A2233"
|
|
14
|
+
ink-3: "#2A3447"
|
|
15
|
+
paper: "#FAFAFC"
|
|
16
|
+
white: "#FFFFFF"
|
|
17
|
+
slate-50: "#F2F4F9"
|
|
18
|
+
slate-100: "#E7EBF2"
|
|
19
|
+
slate-200: "#D5DBE6"
|
|
20
|
+
slate-300: "#B6BECF"
|
|
21
|
+
slate-400: "#8E99B0"
|
|
22
|
+
slate-500: "#6E7A94"
|
|
23
|
+
slate-600: "#54607A"
|
|
24
|
+
slate-700: "#3E4A60"
|
|
25
|
+
success-500: "#1F9D55"
|
|
26
|
+
warning-500: "#D89400"
|
|
27
|
+
danger-500: "#D6293E"
|
|
28
|
+
typography:
|
|
29
|
+
title:
|
|
30
|
+
fontFamily: "Space Grotesk, ui-sans-serif, system-ui, sans-serif"
|
|
31
|
+
fontSize: "20px"
|
|
32
|
+
fontWeight: 600
|
|
33
|
+
lineHeight: 1.3
|
|
34
|
+
letterSpacing: "-0.01em"
|
|
35
|
+
body:
|
|
36
|
+
fontFamily: "Space Grotesk, ui-sans-serif, system-ui, sans-serif"
|
|
37
|
+
fontSize: "14px"
|
|
38
|
+
fontWeight: 400
|
|
39
|
+
lineHeight: 1.5
|
|
40
|
+
letterSpacing: "0"
|
|
41
|
+
label:
|
|
42
|
+
fontFamily: "Space Grotesk, ui-sans-serif, system-ui, sans-serif"
|
|
43
|
+
fontSize: "13px"
|
|
44
|
+
fontWeight: 500
|
|
45
|
+
lineHeight: 1.3
|
|
46
|
+
letterSpacing: "0"
|
|
47
|
+
mono:
|
|
48
|
+
fontFamily: "JetBrains Mono, ui-monospace, SF Mono, Menlo, monospace"
|
|
49
|
+
fontSize: "13px"
|
|
50
|
+
fontWeight: 400
|
|
51
|
+
lineHeight: 1.5
|
|
52
|
+
letterSpacing: "0"
|
|
53
|
+
rounded:
|
|
54
|
+
sm: "4px"
|
|
55
|
+
md: "8px"
|
|
56
|
+
lg: "12px"
|
|
57
|
+
xl: "16px"
|
|
58
|
+
pill: "999px"
|
|
59
|
+
spacing:
|
|
60
|
+
xs: "4px"
|
|
61
|
+
sm: "8px"
|
|
62
|
+
md: "16px"
|
|
63
|
+
lg: "24px"
|
|
64
|
+
xl: "32px"
|
|
65
|
+
"2xl": "48px"
|
|
66
|
+
components:
|
|
67
|
+
button-primary:
|
|
68
|
+
backgroundColor: "{colors.app-identity}"
|
|
69
|
+
textColor: "{colors.white}"
|
|
70
|
+
rounded: "{rounded.md}"
|
|
71
|
+
height: "36px"
|
|
72
|
+
padding: "0 14px"
|
|
73
|
+
button-secondary:
|
|
74
|
+
backgroundColor: "{colors.white}"
|
|
75
|
+
textColor: "{colors.ink}"
|
|
76
|
+
rounded: "{rounded.md}"
|
|
77
|
+
height: "36px"
|
|
78
|
+
padding: "0 14px"
|
|
79
|
+
button-ghost:
|
|
80
|
+
backgroundColor: "transparent"
|
|
81
|
+
textColor: "{colors.ink}"
|
|
82
|
+
rounded: "{rounded.md}"
|
|
83
|
+
height: "36px"
|
|
84
|
+
padding: "0 14px"
|
|
85
|
+
button-danger:
|
|
86
|
+
backgroundColor: "{colors.danger-500}"
|
|
87
|
+
textColor: "{colors.white}"
|
|
88
|
+
rounded: "{rounded.md}"
|
|
89
|
+
height: "36px"
|
|
90
|
+
padding: "0 14px"
|
|
91
|
+
input:
|
|
92
|
+
backgroundColor: "{colors.white}"
|
|
93
|
+
textColor: "{colors.ink}"
|
|
94
|
+
rounded: "{rounded.md}"
|
|
95
|
+
height: "36px"
|
|
96
|
+
padding: "0 12px"
|
|
97
|
+
select:
|
|
98
|
+
backgroundColor: "{colors.white}"
|
|
99
|
+
textColor: "{colors.ink}"
|
|
100
|
+
rounded: "{rounded.md}"
|
|
101
|
+
height: "36px"
|
|
102
|
+
padding: "0 32px 0 12px"
|
|
103
|
+
badge:
|
|
104
|
+
backgroundColor: "{colors.slate-100}"
|
|
105
|
+
textColor: "{colors.slate-700}"
|
|
106
|
+
rounded: "{rounded.pill}"
|
|
107
|
+
padding: "3px 9px"
|
|
108
|
+
card:
|
|
109
|
+
backgroundColor: "{colors.white}"
|
|
110
|
+
textColor: "{colors.ink}"
|
|
111
|
+
rounded: "{rounded.lg}"
|
|
112
|
+
padding: "20px"
|
|
113
|
+
tab-active:
|
|
114
|
+
backgroundColor: "transparent"
|
|
115
|
+
textColor: "{colors.app-identity}"
|
|
116
|
+
rounded: "{rounded.md}"
|
|
117
|
+
height: "34px"
|
|
118
|
+
padding: "6px 10px"
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
# Design System: [你的 App 中文名]
|
|
122
|
+
|
|
123
|
+
## 1. Overview
|
|
124
|
+
|
|
125
|
+
**Creative North Star: "[一句话北极星,例如「像一张随时可核对的账」]"**
|
|
126
|
+
|
|
127
|
+
<!-- 填写指引:2–3 段。第一段说这块工作区在做什么、密度取向;第二段说它与底座的关系(下面那段可直接留用);
|
|
128
|
+
第三段说明确拒绝什么(可从 PRODUCT.md 的 Anti-references 里提炼一句)。 -->
|
|
129
|
+
|
|
130
|
+
[第一段:这块工作区的性格。它是密集的数据面还是引导式的流程?用户一屏之内在找什么?]
|
|
131
|
+
|
|
132
|
+
**你画的是内容区,不是一个站。** 版头(应用图标 + 应用名 + 面包屑 + 帮助 / 全屏 / 刷新)与一级侧栏归门户,你的界面从版头之下开始。所以本系统不定义 logo 区、不定义全局导航、不定义登录与设置入口——那些在壳里已经有了一份。你要做的是让内容区**看起来像同一栋楼里的一间房**:同一套中性色、同一套圆角与投影、同一套状态语言,只有身份色和领域语汇是你自己的。
|
|
133
|
+
|
|
134
|
+
主题不是你的选择:宿主经 `sdk.onTheme` 推 `light` / `dark`,你把它落到自己根节点的 `data-theme` 上,两套都必须过 AA。**iframe 是独立文档**——宿主的 CSS 变量、字体、Tailwind 配置一律不会继承过来,token 与字体都要在你自己的 `index.css` / `index.html` 里再声明一份(本模板的 frontmatter 就是那份的权威值)。
|
|
135
|
+
|
|
136
|
+
> 本文件只管**长什么样**。SDK 行为(主题 / 语言 / 面包屑 / 弹层 / 路由)以 `portal-micro-app` skill 为准;
|
|
137
|
+
> 设计推进用 `impeccable` skill(它开工前会读本文件与 `PRODUCT.md`)。
|
|
138
|
+
|
|
139
|
+
**关键特征:**
|
|
140
|
+
- 冷调 slate 中性色,浅色底是 `paper` (#FAFAFC),深色底是 `ink` (#0B1220);两套都是一等公民。
|
|
141
|
+
- 一个身份色(`app-identity`)承担 App 内的强调与激活;橙色(#FF6B02)是门户的信号色,**App 内不用**。
|
|
142
|
+
- 几何无衬线 Space Grotesk 撑住整个界面;等宽 JetBrains Mono 只给机器值。
|
|
143
|
+
- 控件 8px 圆角、发丝边框、hover / focus 是感觉得到而不是看得见(120ms ease-out)。
|
|
144
|
+
|
|
145
|
+
## 2. Colors
|
|
146
|
+
|
|
147
|
+
### Primary
|
|
148
|
+
|
|
149
|
+
**你的身份色**(`app-identity`,模板里给的 #2563EB 是占位值,**必须换掉**)。它是这个 App 在门户里的名字之外的第二个识别物:门户会用它画应用市场 / 侧栏 / 通知里的 App Glyph(那枚圆角方块底色,由 manifest 的 `color` 字段给),你在 App 内用它画激活态、选中态、焦点环和图表的种子色。
|
|
150
|
+
|
|
151
|
+
三条硬约束:
|
|
152
|
+
1. **不要和已有 App 撞色**,也不要撞 XGENT 蓝 #0063D3(撞了就等于没有身份)。
|
|
153
|
+
2. **manifest 的 `color` 与这里的 `app-identity` 必须是同一个值**——一个在壳里、一个在房里,色不一样就是同一个 App 说两种话。
|
|
154
|
+
3. **深色主题下要单独给一个更亮的值**(`app-identity-dark`):饱和蓝紫在 `ink` 上普遍掉到 AA 以下。
|
|
155
|
+
|
|
156
|
+
**「主按钮归谁」是你要做的唯一一次取舍**,全 App 只选一次、一致到底(两种在门户里都有先例):
|
|
157
|
+
|
|
158
|
+
| 取舍 | 主按钮 / 焦点环 | 什么时候选它 |
|
|
159
|
+
| --- | --- | --- |
|
|
160
|
+
| **A. 继承门户蓝** | `brand-blue` #0063D3 | App 的交互与门户高度同构(表单、审批、配置类),你希望它读起来就是底座的一部分 |
|
|
161
|
+
| **B. 用身份色** | `app-identity` | App 有强烈的领域感(内容创作、数据分析),你希望进来之后是「另一间房」 |
|
|
162
|
+
|
|
163
|
+
选了 B,`brand-blue` 仍然保留在调色板里,只用于**指回门户**的东西(例如指向平台配置页的链接)。
|
|
164
|
+
|
|
165
|
+
### Secondary
|
|
166
|
+
|
|
167
|
+
本系统**没有**第二个强调色。门户的橙色 #FF6B02 是平台信号(未读 / 新增),App 内复用它会让「平台在说话」和「App 在说话」混在一起。需要第二层强调时,用身份色的 8–16% 淡色底,不要引入新色相。
|
|
168
|
+
|
|
169
|
+
### Neutral
|
|
170
|
+
|
|
171
|
+
- **Ink** (#0B1220):浅色态的正文色;深色态的页面底色。整套投影都用它调(`rgba(11,18,32,…)`)。
|
|
172
|
+
- **Slate 600 / 500 / 400** (#54607A / #6E7A94 / #8E99B0):次级与三级文字、meta、图标缺省色。
|
|
173
|
+
- **Slate 300 / 200** (#B6BECF / #D5DBE6):控件强边框与发丝分隔线。
|
|
174
|
+
- **Slate 100 / 50** (#E7EBF2 / #F2F4F9):下沉面与第二层面板(搜索框、分段控件轨道、骨架屏)。
|
|
175
|
+
- **Paper / White** (#FAFAFC / #FFFFFF):浅色态的页面底与抬升面。
|
|
176
|
+
- **Ink 2 / Ink 3** (#1A2233 / #2A3447):深色态的抬升面与第二层面。
|
|
177
|
+
|
|
178
|
+
### Status
|
|
179
|
+
|
|
180
|
+
**Success** (#1F9D55) · **Warning** (#D89400) · **Danger** (#D6293E),各配一个 50 淡色底(浅色态 #E7F6EE / #FBF3DD / #FCE6E9;深色态用同色 16% 透明)。Info 复用门户蓝。
|
|
181
|
+
|
|
182
|
+
### Named Rules
|
|
183
|
+
|
|
184
|
+
**The Tint, Not Fill Rule.** 选中与 hover 用主色的 8–16% 淡色叠在中性色上,**不用**实心。实心色只留给「你该点的那一个」和「你该读的那个状态」。
|
|
185
|
+
|
|
186
|
+
**The Borrowed-Color Rule(反向版).** 门户把中性留给你,好让你的身份色读得出来;作为交换,**App 内不使用门户的橙色**,也不要在内容区里重现门户的品牌元素。
|
|
187
|
+
|
|
188
|
+
**The Status-Never-Alone Rule.** 状态色永远和图标或文字一起出现。色盲用户、灰度打印、以及 `forced-colors` 模式下,色相是第一个消失的东西。
|
|
189
|
+
|
|
190
|
+
## 3. Typography
|
|
191
|
+
|
|
192
|
+
**正文 / UI 字体:** Space Grotesk(回退 `ui-sans-serif, system-ui, -apple-system, sans-serif`)
|
|
193
|
+
**等宽字体:** JetBrains Mono(回退 `ui-monospace, SF Mono, Menlo, Consolas, monospace`)
|
|
194
|
+
|
|
195
|
+
**字体要你自己引。** iframe 不继承宿主的字体加载,在你的 `index.html` 里加:
|
|
196
|
+
|
|
197
|
+
```html
|
|
198
|
+
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
199
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
200
|
+
<link href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet" />
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
`/apps/<key>/` 的 CSP 已放行 `style-src … https://fonts.googleapis.com` 与 `font-src 'self' https://fonts.gstatic.com data: blob:`——**其它字体 CDN 不在放行名单里,会静默不加载**(症状:本地好看,线上变系统字)。要用别的来源就自托管进 `dist`(`'self'`)。
|
|
204
|
+
|
|
205
|
+
### Hierarchy
|
|
206
|
+
|
|
207
|
+
嵌进壳里的界面比门户自己的页面**小一档**:页面标题那一级已经由版头的应用名占掉了,你的最大标题是区块标题。
|
|
208
|
+
|
|
209
|
+
- **Title / h1**(Space Grotesk, 20px, 600, 行高 1.3):视图标题。整屏最大的字,不要再往上加。
|
|
210
|
+
- **Section / h2**(18px → 16px, 600):卡片与分组标题。
|
|
211
|
+
- **Body**(14px, 400, 行高 1.5):默认阅读尺寸。长文本裁到 65–75ch;密集表格可以更宽。
|
|
212
|
+
- **Label**(13px, 500):表单标签、按钮文字、标签页、chip。
|
|
213
|
+
- **Meta / caption**(12px, 400, `slate-500`):时间、计数、辅助说明。**不要再往下**——12px 已经是 CJK 的可读下限。
|
|
214
|
+
- **Eyebrow**(12px, 600, 大写, tracking 0.08em):只给分组分隔线与下拉分区标题,**不是**每个区块头上都要戴一顶。
|
|
215
|
+
- **Mono**(JetBrains Mono, 13px):ID、token、scope、cron、IP、金额与数量的对齐列、行内代码。
|
|
216
|
+
|
|
217
|
+
### Named Rules
|
|
218
|
+
|
|
219
|
+
**The Mono-Means-Machine Rule.** 等宽字表示「这是一个字面量机器值」。不要拿它做强调,不要用它排人话。
|
|
220
|
+
|
|
221
|
+
**No-Display-Face-Inside-The-Shell.** 门户有一款展示字(Iceland),只给登录页那种 hero 时刻。嵌入式 App 里**没有** hero 时刻,一个都不要用。
|
|
222
|
+
|
|
223
|
+
## 4. Elevation
|
|
224
|
+
|
|
225
|
+
默认是平的。分隔靠发丝边框(`--border`)和第二层中性面,不靠投影;只有**离开平面**的东西才有阴影(弹层、模态、抽屉、分段控件被抬起的滑块)。浅色态阴影用 ink 调色,深色态用纯黑加大不透明度——深色下 4% 的黑等于没有。
|
|
226
|
+
|
|
227
|
+
### Shadow Vocabulary
|
|
228
|
+
|
|
229
|
+
- **Shadow 1** `0 1px 2px rgba(11,18,32,.04), 0 1px 1px rgba(11,18,32,.06)`:小元素的接触阴影(图标块、分段滑块、开关旋钮)。
|
|
230
|
+
- **Shadow 2** `0 4px 12px rgba(11,18,32,.06), 0 2px 4px rgba(11,18,32,.04)`:确实需要浮起来的卡片。
|
|
231
|
+
- **Shadow 3** `0 12px 28px rgba(11,18,32,.10), 0 4px 8px rgba(11,18,32,.06)`:Popover 与锚定下拉。
|
|
232
|
+
- **Shadow 4** `0 24px 56px rgba(11,18,32,.18), 0 8px 16px rgba(11,18,32,.10)`:模态与抽屉。
|
|
233
|
+
- **Focus ring** `0 0 0 2px var(--bg), 0 0 0 4px var(--ring)`:键盘焦点唯一处理;输入框另外叠一圈 3px 的主色 16% 辉光。
|
|
234
|
+
|
|
235
|
+
深色态整体替换为 `rgba(0,0,0,.4 → .6)`。
|
|
236
|
+
|
|
237
|
+
### Named Rules
|
|
238
|
+
|
|
239
|
+
**The Flat-At-Rest Rule.** 静止的面是平的。阴影是「离开了平面」的回应,不是卡片的默认装饰。静止卡片上出现 Shadow 3 就是错的。
|
|
240
|
+
|
|
241
|
+
**The Popover-Stays-Inside Rule(iframe 专属).** 你的弹层**出不了 iframe 的边界**——超出的部分直接被裁掉,而在本地全屏调试时你看不出来。锚定弹层必须做边界翻转(flip / shift),长内容自己滚动;确实需要更高的可视区就调 `sdk.resize`,不要指望溢出到宿主页面上。
|
|
242
|
+
|
|
243
|
+
## 5. Components
|
|
244
|
+
|
|
245
|
+
每个可交互组件都要有 default / hover / focus / active / disabled,内容可能缺失的地方还要有 loading(骨架屏)与 empty / error(状态块)。手感是精确克制:8px 圆角、发丝边框、120ms ease-out。
|
|
246
|
+
|
|
247
|
+
### Buttons
|
|
248
|
+
- **形状**:8px 圆角,三档高度(sm 30 / md 36 / lg 40px),字重 600,单行。
|
|
249
|
+
- **Primary**:实心(身份色或门户蓝,见 §2 的取舍),白字。一屏之内**只有一个**。
|
|
250
|
+
- **Secondary**:白底 / 深色态 `ink-2` 底,正文色,`slate-300` 强边框。hover 转 `slate-50`。
|
|
251
|
+
- **Ghost**:透明、无边框,给密集工具条里的低强调动作。
|
|
252
|
+
- **Danger**:实心 #D6293E,只给破坏性动作,且破坏性动作必须二次确认(**用 App 内的 DOM 模态框**,见 §6)。
|
|
253
|
+
- **Disabled**:40% 不透明 + `not-allowed`。**禁用必须能解释原因**(tooltip 或旁注),不然用户只能猜。
|
|
254
|
+
- **Icon button**:36px 见方,8px 圆角,`slate-500` 图标;激活态用主色 8% 淡底 + 主色图标。
|
|
255
|
+
|
|
256
|
+
### Inputs / Fields
|
|
257
|
+
- **样式**:36px 高、白底、`slate-300` 边框、8px 圆角、13–14px 字,可带前导图标与 `*` 必填标记。
|
|
258
|
+
- **Focus**:边框转主色 + 3px 主色 16% 辉光。
|
|
259
|
+
- **Error**:边框与帮助文字转 danger,帮助行说清**怎么改**,不是只说「格式错误」。
|
|
260
|
+
- **中文输入法**:输入框回车提交前必须挡掉输入法候选确认的那一次 Enter(`keyCode === 229`),否则用户在选词时就被提交了。用 `@xgent/portal-ui` 的 `./keyboard` / `./input`,不要自己写一份。
|
|
261
|
+
|
|
262
|
+
### Select(硬规则,不是风格偏好)
|
|
263
|
+
原生 `<select>` 直接套输入框的类,留下的是**浏览器原生箭头**——位置 / 大小 / 颜色全归浏览器,`pr-*` 推不动它(padding 只影响文字),也不跟主题走。这个错误反复出现,因为类型检查、lint、单测**全绿**,只有人眼看得出来。
|
|
264
|
+
|
|
265
|
+
```
|
|
266
|
+
appearance-none ← 唯一硬要求:关掉原生箭头
|
|
267
|
+
pr-8 ← 给自绘箭头留位(按图标宽 + 右内缩算)
|
|
268
|
+
<ChevronDown size={14} className="pointer-events-none absolute right-2.5 top-1/2 -translate-y-1/2 text-fg-3" />
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
收进你自己的 `Select` 原语里,视图代码里**不写裸 `<select>`**。宽度写在哪取决于 `className` 转发给谁:转发给 `<select>`(内部已有 `w-full`)就得在外面套一层定宽 `div`;转发给外层 wrapper 就直接写在组件上。
|
|
272
|
+
|
|
273
|
+
### Cards / Containers
|
|
274
|
+
- 12px 圆角(模态 / 抽屉 16px),白底 / `ink-2` 底,1px `slate-200` 发丝边框,内边距 20–24px。
|
|
275
|
+
- 静止不带阴影。**卡片里不套卡片**——需要第二层就用 `slate-50` 下沉面或一条分隔线。
|
|
276
|
+
- 卡片是偷懒的答案:先问一句这些内容是不是本来就该是一张表或一个列表。
|
|
277
|
+
|
|
278
|
+
### Tables / Lists
|
|
279
|
+
- 服务端分页,复用平台的 `Page<T>` 契约;不要一次拉全量再前端分页。
|
|
280
|
+
- 表头吸顶、数字右对齐且用等宽、行 hover 用主色 8% 淡底、选中行同色更深一档。
|
|
281
|
+
- 列宽稳定:异步加载不要让列宽跳动(骨架屏用等宽占位)。
|
|
282
|
+
|
|
283
|
+
### Feedback States
|
|
284
|
+
- **Loading**:骨架屏(按内容形状),不是转圈圈铺满整块。
|
|
285
|
+
- **Empty**:一句说明 + 一个动作。区分「还没有数据」和「筛选后没有命中」——后者要给「清除筛选」。
|
|
286
|
+
- **Error**:说清发生了什么、用户能做什么。业务失败是 HTTP 200 + 响应体错误结构,**别把它当网络故障渲染**。
|
|
287
|
+
|
|
288
|
+
### [Signature Component]
|
|
289
|
+
|
|
290
|
+
<!-- 填写指引:如果本 App 有一个撑起它身份的自定义组件(一个编辑器、一块画布、一种卡片、一张时间线),
|
|
291
|
+
在这里写清它的结构、状态与由来。没有就整段删掉。 -->
|
|
292
|
+
|
|
293
|
+
[名字 + 一段:它长什么样、有哪些状态、为什么是它而不是通用组件。]
|
|
294
|
+
|
|
295
|
+
## 6. Do's and Don'ts
|
|
296
|
+
|
|
297
|
+
### Do:
|
|
298
|
+
- **Do** 把身份色用在激活 / 选中 / 焦点上,并让它与 manifest 的 `color` 逐字相同。
|
|
299
|
+
- **Do** 用主色 8–16% 淡底表达选中与 hover,实心色只给「该点的那一个」。
|
|
300
|
+
- **Do** 每个状态色都配图标或文字。
|
|
301
|
+
- **Do** 两套主题都过 AA,并在**深色态下单独校一遍身份色**。
|
|
302
|
+
- **Do** 用 `sdk.setBreadcrumbs()` 表达页面层级(首页推 `[]`,每次全量覆盖,label 用当前语言解析好)。
|
|
303
|
+
- **Do** 用 `@xgent/portal-ui` 已有的组件(`UserPicker`、IME 安全输入)再造新轮子。
|
|
304
|
+
- **Do** 机器值用等宽字,加载用骨架屏,空 / 错用状态块。
|
|
305
|
+
- **Do** 每个动效都给 `prefers-reduced-motion` 替代;过渡落在 120–280ms ease-out。
|
|
306
|
+
|
|
307
|
+
### Don't:
|
|
308
|
+
- **Don't** 在 App 内自绘应用图标 / 应用名 / tagline / 侧栏 / 租户切换 / 用户菜单 / 主题切换 / 通知铃铛——版头和壳已经有一份。
|
|
309
|
+
- **Don't** 自建「设置」页与它的侧栏入口(租户配置走平台应用配置页),也不自建审计页与通知中心。
|
|
310
|
+
- **Don't** 用 `window.alert` / `confirm` / `prompt`——跨源沙箱 iframe 里**被静默忽略**,用户什么都不会看到,代码却以为用户确认了。一律用 App 内的 DOM 模态框。
|
|
311
|
+
- **Don't** 给卡片 / 列表项 / 提示框加左侧色条(`border-left`)。
|
|
312
|
+
- **Don't** 在 var() 颜色上用 Tailwind 的 `/alpha` 修饰符(`bg-primary/50`)——**静默失效**,用 `opacity-NN` 或预先算好的色值。
|
|
313
|
+
- **Don't** 用门户的橙色,不用展示字体 Iceland,不用第三个字体家族。
|
|
314
|
+
- **Don't** 让静止卡片带阴影,不要卡片套卡片。
|
|
315
|
+
- **Don't** 写裸 `<select>`(见 §5),不要拿 `pr-*` 去推原生箭头。
|
|
316
|
+
- **Don't** 先想模态框:能内联、能抽屉、能就地展开的,都不要打断用户。
|
|
317
|
+
- **Don't** 只看 diff 就说 UI 改完了——类型检查和单测只证明代码对。改动要从宿主进入、在真浏览器里走通主路径与关键边界;环境起不来就**显式说明「未在浏览器中验证」**。
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# Product
|
|
2
|
+
|
|
3
|
+
## Register
|
|
4
|
+
|
|
5
|
+
product
|
|
6
|
+
|
|
7
|
+
<!-- 填写指引:几乎所有出仓 App 都是 `product`(已认证的应用 UI,设计**服务**产品)。
|
|
8
|
+
只有当这个仓库交付的主界面是官网 / 落地页 / 长内容(设计**就是**产品)时才写 `brand`。
|
|
9
|
+
`service` 型(无前端)App 仍写 `product`——它的「界面」是平台控制台里的配置面与错误文案。
|
|
10
|
+
裸词一个,不要加句号、不要加解释。 -->
|
|
11
|
+
|
|
12
|
+
## Users
|
|
13
|
+
|
|
14
|
+
本 App 被嵌在 XGENT.ai Portal 的应用版头之下(`service` 型无前端,直接跳到第三条)。用户不是从零进来的:他们已经登录、已经选好租户、已经在门户的侧栏里点了本 App。
|
|
15
|
+
|
|
16
|
+
- **租户普通成员**(TDT `claims.role === "user"`)。主要受众。[他们在做什么工作、一屏之内的首要任务是什么、他们一天来几次]。他们看到的功能面由角色基线 + ACL(`claims.permissions`)决定,**不是**由界面藏不藏按钮决定。
|
|
17
|
+
- **租户管理员**(`claims.role === "admin"`)。做结构性动作:[列出本 App 里只有管理员能做的事,例如建/删业务对象、改本 App 的租户级设置]。他们需要密度、准确、以及对状态(成功 / 失败 / 待定)诚实的反馈。
|
|
18
|
+
- **平台管理员 / 运维**。他们不进你的前端,只在**门户控制台**里看你的 listing、部署状态、用量与审计。你欠他们的是:可读的健康信封、可读的部署失败原因、以及同意屏上不是裸 scope 名的中文文案。
|
|
19
|
+
|
|
20
|
+
<!-- 填写指引:本 App 若有自己的业务角色(老师/学生、审核人/提交人…),在这里补成第四条,
|
|
21
|
+
并写明它是「门户角色 + ACL PID 的组合」还是「你自己表里的一列」——后者要说明它如何与租户隔离共存。 -->
|
|
22
|
+
|
|
23
|
+
上下文:已认证、多租户、桌面优先(数据密集面)但需响应式,主 locale 是 `zh-CN`(界面语言由宿主推送,见 `sdk.onLocale`)。**角色决定看见什么,不决定界面怎么工作。**
|
|
24
|
+
|
|
25
|
+
## Product Purpose
|
|
26
|
+
|
|
27
|
+
[一段话:本 App 解决什么问题、为什么它值得单独存在、什么算成功。用具体的名词和动词,别用「赋能 / 一站式 / 全流程」。]
|
|
28
|
+
|
|
29
|
+
**边界(这一段不要删)**:本 App 是门户里的一块工作区,不是一个站。下列能力**已由门户提供**,本仓不重造、不自建入口:
|
|
30
|
+
|
|
31
|
+
| 已归门户 | 你该怎么做 |
|
|
32
|
+
| --- | --- |
|
|
33
|
+
| 登录 / 2FA / 会话 / 租户切换 | 什么都不做。iframe 里拿到的就是已认证上下文 |
|
|
34
|
+
| 应用图标 + 应用名 + tagline(版头最左那一级) | 不在 App 内再画一份;页面层级用 `sdk.setBreadcrumbs()` 上报 |
|
|
35
|
+
| 成员管理 / 角色矩阵 / 权限授予 | 声明 `aclManifest` 的 PID,权限在门户里配 |
|
|
36
|
+
| 本 App 的租户级配置页 | 走平台「应用配置」,不自建「设置」页与侧栏入口 |
|
|
37
|
+
| 审计日志 | 写 `POST /api/v1/audit`,不自建审计页 |
|
|
38
|
+
| 通知 / 消息 | 走平台消息服务,不自建通知中心 |
|
|
39
|
+
| 文件存储 / 预览 | 走 Files App,不自建文件管理 |
|
|
40
|
+
| 帮助页入口 | 清单里声明 `helpEntry`,版头会长出一枚帮助按钮,不占侧栏 |
|
|
41
|
+
|
|
42
|
+
本 App 真正拥有的是:[列 3–5 条只有你能做的事]。
|
|
43
|
+
|
|
44
|
+
## Brand Personality
|
|
45
|
+
|
|
46
|
+
本 App 的个性表现在**身份色、领域语汇、信息结构**上,**不**表现在另起一套控件、圆角和排版——那些跟门户同族(见 `DESIGN.md`)。
|
|
47
|
+
|
|
48
|
+
[三个词:例如「精准、克制、可信」。然后两句话说清语气:文案是陈述句还是引导句?错误信息说人话还是说错误码?空状态是给指令还是给解释?]
|
|
49
|
+
|
|
50
|
+
底座已定的调性(继承,不覆盖):precise, engineered, quietly confident——开发者平台那一族(Linear / Stripe / Vercel 的手感),冷调中性色、几何无衬线(Space Grotesk)、机器值用等宽(JetBrains Mono)。界面应该像可信的基础设施:安静、该密的地方密、不为装饰而装饰。
|
|
51
|
+
|
|
52
|
+
## Anti-references
|
|
53
|
+
|
|
54
|
+
继承门户的四条:
|
|
55
|
+
|
|
56
|
+
- **过时的后台模板**(Bootstrap / AdminLTE / 默认 Ant Design Pro):灰、通用、把每个功能都摆出来、没有观点。
|
|
57
|
+
- **无生气的老企业软件**(SAP / Oracle / 旧政务门户):沉重、表单密度高而没有层级。
|
|
58
|
+
- **过度装饰的消费风**:到处渐变、吉祥物、什么都圆、游戏化。
|
|
59
|
+
- **AI 味**:奶油色背景、渐变文字、每个段落上面一条 eyebrow、一模一样的卡片网格。
|
|
60
|
+
|
|
61
|
+
再加两条**出仓 App 专属**(这两条是外部团队最常犯的):
|
|
62
|
+
|
|
63
|
+
- **「iframe 里的第二个门户」**:App 内自绘版头 / 侧栏 / 租户切换 / 用户菜单 / 主题切换按钮 / 通知铃铛。同屏说两次,而且租户改过 App 名之后两处会说得不一样。
|
|
64
|
+
- **「移植过来的独立站」**:把一个原本独立的 SaaS 整个塞进 iframe,带着自己的登录页、自己的用户管理、自己的设置中心和自己的一整套设计语言。
|
|
65
|
+
|
|
66
|
+
[如果有具体的反面参照(某个竞品、某个旧版本),点名写在这里,并说明**具体是哪一点**不要。]
|
|
67
|
+
|
|
68
|
+
## Design Principles
|
|
69
|
+
|
|
70
|
+
<!-- 填写指引:3–5 条。前两条是平台派生的,建议保留;其余换成从你的领域里长出来的原则。
|
|
71
|
+
原则是战略判断(「先给答案再给表格」),不是视觉规则(「用 8px 圆角」——那属于 DESIGN.md)。 -->
|
|
72
|
+
|
|
73
|
+
1. **门户已经提供的,不要再造一份。** 边界表里的每一行都是平台的事。重造的代价不是多写代码,是两个事实源开始互相说谎。
|
|
74
|
+
2. **角色决定看见什么,不决定怎么工作。** 管理员与普通成员共用同一套组件、间距和状态语言;差别只在内容多寡。
|
|
75
|
+
3. [你的领域原则]
|
|
76
|
+
4. [你的领域原则]
|
|
77
|
+
|
|
78
|
+
## Accessibility & Inclusion
|
|
79
|
+
|
|
80
|
+
双主题(light / dark,由宿主经 `sdk.onTheme` 推送,App 自己落到根节点的 `data-theme`)都要过 **WCAG 2.1 AA**:
|
|
81
|
+
|
|
82
|
+
- 正文对比度 ≥ 4.5:1,大字 ≥ 3:1,**placeholder 也算正文**。
|
|
83
|
+
- 每个可交互元素都能键盘到达并有可见焦点态。
|
|
84
|
+
- 每个动效都有 `prefers-reduced-motion` 替代路径。
|
|
85
|
+
- 主 locale 是 `zh-CN`,排版要处理好 CJK(行高、标点、断行);界面语言跟随宿主,不在 App 内自建语言切换。
|
|
86
|
+
- 状态色(成功 / 警告 / 危险)必须同时带图标或文字,不能只靠色相。
|
|
87
|
+
- [本 App 特有的可访问性约束:例如长表格要有表头吸顶、拖拽操作要有键盘替代、图表要有数据表兜底。]
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# 产品与设计槽位填写指南
|
|
2
|
+
|
|
3
|
+
AGENTS.md 使用通用模板原样创建,不填项目槽位,也不与 CLAUDE.md 镜像。以下指南用于 `external-app-PRODUCT.template.md` 和 `external-app-DESIGN.template.md`;只填产品与设计槽位,保留 Portal 规范。
|
|
4
|
+
|
|
5
|
+
## 0. 三条硬约束(改坏了 impeccable 就解析不出来)
|
|
6
|
+
|
|
7
|
+
- **PRODUCT.md**:七个二级标题,名字与顺序固定 —— `Register` / `Users` / `Product Purpose` / `Brand Personality` / `Anti-references` / `Design Principles` / `Accessibility & Inclusion`。别改名、别加段、别调序。`## Register` 的正文只能是裸词 `product` 或 `brand`,不加句号、不加解释。
|
|
8
|
+
- **DESIGN.md**:YAML frontmatter 必须从**文件第 1 行**开始(前面多一个空行就整块解析不出来),正文**恰好六段**,名字与顺序照抄 —— `1. Overview` / `2. Colors` / `3. Typography` / `4. Elevation` / `5. Components` / `6. Do's and Don'ts`。不要加 Layout / Motion / Responsive 这类第七段,把内容折进六段里。
|
|
9
|
+
- **平台口径的事实源是目标仓里已装的 skill**,不是这三份文件:`portal-external-app`(接入契约 · `app.manifest.json` · `/svc` 与健康检查)· `portal-micro-app`(SDK 握手 / 版头 / consent / iframe 坑)· `xgent-app-release`(发布提案 · 产物打包 · 排错)· `xgent-image-push`(镜像构建与推送)· `portal-dev-setup`(一盒本地联调)· `portal-app-exchange`(跨应用调用)。**门户仓的文档目标仓访问不到,别在生成的文件里引它的路径。**
|
|
10
|
+
|
|
11
|
+
## 1. 项目事实
|
|
12
|
+
|
|
13
|
+
- App 中文名从 manifest `name` 读取:对象取 `zh-CN`,字符串直接使用。
|
|
14
|
+
- manifest `type` 决定是否新生成 DESIGN.md:micro 生成,service 不生成。
|
|
15
|
+
- 身份色取 manifest `color`,缺失时追问;不要使用模板占位色。
|
|
16
|
+
- PRODUCT / DESIGN 的其他事实从 README、路由、页面、组件与用户回答采集,记录来源。AGENTS 不再包含需要替换的 key、PREFIX 或 type 槽位。
|
|
17
|
+
|
|
18
|
+
## 2. 段落级槽位
|
|
19
|
+
|
|
20
|
+
| # | 位置 | 要写什么 | 来源优先级 | 追问问法 | 约束 |
|
|
21
|
+
| --- | --- | --- | --- | --- | --- |
|
|
22
|
+
| S5 | PRODUCT `## Users` 第 1 条 | 普通成员在做什么工作、一屏之内的首要任务、使用频次 | manifest `tagline` / `desc` / `navItems` + 路由/页面命名 → 追问 | 「普通成员进来主要做什么?多久来一次?」 | 一句话,具体动词;不写「提升效率」 |
|
|
23
|
+
| S6 | PRODUCT `## Users` 第 2 条 | 只有租户管理员能做的结构性操作 | `aclManifest` 的 PID、admin 路由 → 追问 | 「哪些操作只有租户管理员能做?」 | 列具体动作(建/删业务对象、改租户级设置) |
|
|
24
|
+
| S7 | PRODUCT `## Product Purpose` 首段 | 解决什么问题、为什么值得单独存在、什么算成功 | manifest `desc` + README → 追问 | 「这个 App 解决什么问题?什么算成功?」 | 一段话;具体名词动词,**禁用**「赋能 / 一站式 / 全流程」 |
|
|
25
|
+
| S8 | PRODUCT `## Product Purpose` 边界表下方 | 本 App 真正拥有的 3–5 条 | 从 S5–S7 与 `scopes` 命名空间归纳 → 追问 | 「只有本 App 能做的事有哪些?」 | 3–5 条;不能与边界表里「已归门户」的行重叠 |
|
|
26
|
+
| S9 | PRODUCT `## Brand Personality` | 三个词 + 两句语气说明 | 由 S7 与领域推断 | 可不问 | 标注为**建议**;语气两句要回答:陈述句还是引导句、错误信息说人话还是错误码、空状态给指令还是给解释 |
|
|
27
|
+
| S10 | PRODUCT `## Anti-references` 末段 | 具体的反面参照(某竞品、某旧版本)及**具体哪一点**不要 | 追问 | 「有没有明确不想像的产品或旧版本?」 | 用户说没有 → **整段删掉**,保留上面继承的六条 |
|
|
28
|
+
| S11 | PRODUCT `## Design Principles` 第 3、4 条 | 两条领域设计原则 | 由 S5–S8 推导 | 可不问 | 是战略判断(「先给答案再给表格」),不是视觉规则(「用 8px 圆角」——那属于 DESIGN.md)。推不出就删到只剩平台那两条 |
|
|
29
|
+
| S12 | PRODUCT `## Accessibility & Inclusion` 末条 | 本 App 特有的可访问性约束 | 由 UI 形态推断(长表格 / 拖拽 / 图表) | 可不问 | 无特有约束 → **删掉该行** |
|
|
30
|
+
| S13 | DESIGN frontmatter `name` / `description`,与 `# Design System: …` 标题 | App 中文名;一句话说清这块工作区是什么、给谁用 | manifest `name` + `tagline` / S7 | — | 三处名字一致;frontmatter 是 YAML,值里的 `"` 与 `\` 必须转义 |
|
|
31
|
+
| S14 | DESIGN frontmatter `colors.app-identity` / `-hover` / `-dark` | 三个色值 | `app-identity` = manifest `color`(**硬约束**,见 §3);hover / dark 推导 | 无 manifest:「身份色是多少(#RRGGBB)?」 | 见 §3 |
|
|
32
|
+
| S15 | DESIGN `## 1. Overview` 的 Creative North Star | 一句话北极星 | 由 S7 提炼 | 可不问 | 一句话,带画面感(例:「像一张随时可核对的账」) |
|
|
33
|
+
| S16 | DESIGN `## 1. Overview` 第一段 | 这块工作区的性格:密集数据面还是引导式流程、用户一屏之内在找什么 | 由 S5 与 UI 形态推断 | 可不问 | 其后两段(「你画的是内容区」「主题不是你的选择」)**原样保留** |
|
|
34
|
+
| S17 | DESIGN `### [Signature Component]` | 撑起产品身份的自定义组件:结构、状态、由来 | 组件目录里识别 | 「有没有一个撑起产品身份的自定义组件(编辑器 / 画布 / 时间线)?」 | 没有 → **连标题整段删掉**;有 → 标题换成组件真名 |
|
|
35
|
+
|
|
36
|
+
## 3. 身份色
|
|
37
|
+
|
|
38
|
+
- `app-identity` **必须**与 manifest 的 `color` 逐字相同 —— 一个在壳里(应用市场 / 侧栏的 App Glyph),一个在房里,色不一样就是同一个 App 说两种话。无 manifest 时追问,别用模板的占位值 `#2563EB`。
|
|
39
|
+
- `app-identity-hover` 由 `app-identity` 压暗一档(约 −12% 亮度),`app-identity-dark` 提亮一档(约 +18% 亮度,深色底上饱和蓝紫普遍掉到 AA 以下)。两个都是**推导值**:在 frontmatter 上方留一行 YAML 注释注明「由 app-identity 推导,可按需调整」。
|
|
40
|
+
- 不要撞 XGENT 蓝 `#0063D3`,不要撞已有 App 的色。
|
|
41
|
+
|
|
42
|
+
## 4. 必须做的一次取舍:主按钮归谁
|
|
43
|
+
|
|
44
|
+
DESIGN `## 2. Colors` 的 A / B 表格是**给用户的选择题**,不是背景介绍。渲染时按判断挑一个,在表格下方写明选了哪个、为什么,并把没选的那行留在表里(它解释了另一种先例):
|
|
45
|
+
|
|
46
|
+
- **A. 继承门户蓝 `brand-blue` #0063D3** —— App 的交互与门户高度同构(表单、审批、配置类)。
|
|
47
|
+
- **B. 用身份色 `app-identity`** —— App 有强烈领域感(内容创作、数据分析),进来之后是「另一间房」。
|
|
48
|
+
|
|
49
|
+
选 B 时 `brand-blue` 仍保留在调色板里,只用于**指回门户**的东西。
|
|
50
|
+
|
|
51
|
+
## 5. 可选小节的删留
|
|
52
|
+
|
|
53
|
+
| 位置 | 留的条件 | 删法 |
|
|
54
|
+
| --- | --- | --- |
|
|
55
|
+
| PRODUCT `## Users` 第 4 条业务角色 | 本 App 有自己的业务角色(老师/学生、审核人/提交人…) | 有就补一条,并写明它是「门户角色 + ACL PID 的组合」还是「你自己表里的一列」——后者要说明如何与租户隔离共存 |
|
|
56
|
+
| PRODUCT `## Anti-references` 末段 · `## Design Principles` 3–4 条 · `## Accessibility` 末条 · DESIGN `### [Signature Component]` | 见 §2 的 S10 / S11 / S12 / S17 | 无内容就整段删,**不要留空槽位** |
|
|
57
|
+
|
|
58
|
+
## 6. 填写指引与身份色说明
|
|
59
|
+
|
|
60
|
+
PRODUCT / DESIGN 中的 `<!-- 填写指引:… -->` 注释填完即删。DESIGN 中讲模板色值是占位值的说明,改为实际身份色及其用途;主按钮 A / B 选择写清理由。AGENTS 没有填写指引,不做项目槽位替换。
|
|
61
|
+
|
|
62
|
+
## 7. 不要动的东西(防过度替换)
|
|
63
|
+
|
|
64
|
+
- DESIGN `## 5. Components` 里的 `Page<T>` 是平台分页契约的类型名,不是槽位。
|
|
65
|
+
- DESIGN frontmatter `components.*` 里的 `{colors.app-identity}` / `{rounded.md}` 等花括号引用是 token 引用语法,保持原样。
|
|
66
|
+
- DESIGN frontmatter 的全部色值、字体、圆角、间距、组件尺寸是门户 token 的权威副本,**一个字不改也是对的**;除身份色三条外不要调。
|