@3fn/core 13.0.0 → 14.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.kiro/agents/ada-prompt.md +80 -132
- package/.kiro/agents/ada-prompt.md.attribution.json +45 -0
- package/.kiro/agents/ada.json +44 -59
- package/.kiro/agents/ada.json.attribution.json +13 -0
- package/.kiro/agents/data-prompt.md +83 -74
- package/.kiro/agents/data-prompt.md.attribution.json +53 -0
- package/.kiro/agents/data.json +31 -38
- package/.kiro/agents/data.json.attribution.json +13 -0
- package/.kiro/agents/kenya-prompt.md +83 -72
- package/.kiro/agents/kenya-prompt.md.attribution.json +53 -0
- package/.kiro/agents/kenya.json +27 -35
- package/.kiro/agents/kenya.json.attribution.json +13 -0
- package/.kiro/agents/leonardo-prompt.md +176 -234
- package/.kiro/agents/leonardo-prompt.md.attribution.json +45 -0
- package/.kiro/agents/leonardo.json +28 -36
- package/.kiro/agents/leonardo.json.attribution.json +13 -0
- package/.kiro/agents/lina-prompt.md +110 -151
- package/.kiro/agents/lina-prompt.md.attribution.json +53 -0
- package/.kiro/agents/lina.json +46 -59
- package/.kiro/agents/lina.json.attribution.json +13 -0
- package/.kiro/agents/sparky-prompt.md +89 -72
- package/.kiro/agents/sparky-prompt.md.attribution.json +53 -0
- package/.kiro/agents/sparky.json +37 -37
- package/.kiro/agents/sparky.json.attribution.json +13 -0
- package/.kiro/agents/stacy-prompt.md +74 -48
- package/.kiro/agents/stacy-prompt.md.attribution.json +45 -0
- package/.kiro/agents/stacy.json +28 -30
- package/.kiro/agents/stacy.json.attribution.json +13 -0
- package/.kiro/agents/thurgood-prompt.md +94 -138
- package/.kiro/agents/thurgood-prompt.md.attribution.json +45 -0
- package/.kiro/agents/thurgood.json +31 -35
- package/.kiro/agents/thurgood.json.attribution.json +13 -0
- package/.kiro/steering/AI-Collaboration-Principles.md +3 -3
- package/.kiro/steering/Civitas-System-Overview.md +7 -16
- package/.kiro/steering/DesignerPunk-Systems-Overview.md +6 -6
- package/.kiro/steering/Spec-Feedback-Protocol.md +2 -11
- package/.kiro/steering/Task-Completion-Protocol.md +98 -17
- package/.kiro/steering/core-goals.md +3 -3
- package/.kiro/steering/personal-note.md +1 -1
- package/.kiro/steering/start-up-tasks.md +17 -6
- package/application-mcp-server/src/index.ts +26 -0
- package/dist/ComponentTokens.android.kt +12 -12
- package/dist/ComponentTokens.ios.swift +12 -12
- package/dist/ComponentTokens.web.css +3 -3
- package/dist/DesignTokens.android.kt +1 -1
- package/dist/DesignTokens.dtcg.json +8 -5
- package/dist/DesignTokens.figma.json +2 -2
- package/dist/DesignTokens.ios.swift +1 -1
- package/dist/DesignTokens.web.css +1 -1
- package/dist/android/DesignTokens.android.kt +1 -1
- package/dist/blend/OklchBlendCalculator.js +1 -0
- package/dist/blend/ThemeAwareBlendUtilities.web.d.ts +13 -2
- package/dist/blend/ThemeAwareBlendUtilities.web.js +6 -1
- package/dist/browser/designerpunk.esm.js +36 -90
- package/dist/browser/designerpunk.esm.min.js +33 -36
- package/dist/browser/designerpunk.umd.js +36 -90
- package/dist/browser/designerpunk.umd.min.js +47 -50
- package/dist/browser/tokens.css +3 -3
- package/dist/build/tokens/defineComponentTokens.d.ts +10 -0
- package/dist/build/tokens/defineComponentTokens.js +26 -0
- package/dist/components/core/Avatar-Base/avatar.tokens.d.ts +21 -26
- package/dist/components/core/Avatar-Base/avatar.tokens.js +31 -34
- package/dist/components/core/Avatar-Base/index.d.ts +1 -1
- package/dist/components/core/Avatar-Base/index.js +2 -2
- package/dist/components/core/Avatar-Base/platforms/web/Avatar.web.js +24 -5
- package/dist/components/core/Button-CTA/examples/BasicUsage.d.ts +16 -28
- package/dist/components/core/Button-CTA/examples/BasicUsage.js +18 -43
- package/dist/components/core/Button-CTA/platforms/web/ButtonCTA.web.d.ts +3 -15
- package/dist/components/core/Button-CTA/platforms/web/ButtonCTA.web.js +9 -58
- package/dist/components/core/Button-CTA/types.d.ts +0 -24
- package/dist/components/core/Button-CTA/types.js +6 -0
- package/dist/components/core/Button-Icon/buttonIcon.tokens.d.ts +28 -14
- package/dist/components/core/Button-Icon/buttonIcon.tokens.js +35 -20
- package/dist/components/core/Input-Text-Base/types.d.ts +13 -1
- package/dist/components/core/Input-Text-Password/platforms/web/InputTextPassword.web.js +11 -2
- package/dist/generators/DTCGFormatGenerator.js +8 -0
- package/dist/generators/TokenFileGenerator.js +7 -2
- package/dist/integration/BuildErrorHandler.js +2 -2
- package/dist/ios/DesignTokens.ios.swift +1 -1
- package/dist/mcp/application-mcp.js +24 -0
- package/dist/mcp/docs-mcp.js +130 -15
- package/dist/mcp/product-mcp.js +25 -0
- package/dist/tokens/OpacityTokens.js +1 -1
- package/dist/tokens/component/progress.d.ts +65 -5
- package/dist/tokens/component/progress.js +79 -18
- package/dist/tokens/semantic/BlendTokens.d.ts +10 -3
- package/dist/tokens/semantic/BlendTokens.js +17 -5
- package/dist/tokens/semantic/OpacityTokens.d.ts +4 -4
- package/dist/tokens/semantic/OpacityTokens.js +4 -4
- package/dist/types/ComponentTypes.d.ts +1 -1
- package/dist/types/generated/TokenTypes.d.ts +1 -1
- package/dist/types/generated/TokenTypes.js +1 -1
- package/dist/validators/StemmaTokenUsageValidator.js +3 -2
- package/dist/web/DesignTokens.web.css +1 -1
- package/governance/BUILD-SYSTEM-SETUP.md +1 -2
- package/governance/Component-Development-Guide.md +23 -13
- package/governance/Component-Development-Standards.md +21 -20
- package/governance/Component-Family-Avatar.md +6 -7
- package/governance/Component-Family-Badge.md +19 -20
- package/governance/Component-Family-Button.md +30 -43
- package/governance/Component-Family-Chip.md +14 -15
- package/governance/Component-Family-Container.md +12 -13
- package/governance/Component-Family-Data-Display.md +1 -2
- package/governance/Component-Family-Divider.md +1 -2
- package/governance/Component-Family-Form-Inputs.md +65 -65
- package/governance/Component-Family-Icon.md +9 -10
- package/governance/Component-Family-Loading.md +1 -2
- package/governance/Component-Family-Modal.md +1 -2
- package/governance/Component-Family-Navigation.md +1 -2
- package/governance/Component-Family-Progress.md +0 -1
- package/governance/Component-Inheritance-Structures.md +219 -99
- package/governance/Component-MCP-Document-Template.md +6 -5
- package/governance/Component-Primitive-vs-Semantic-Philosophy.md +1 -1
- package/governance/Component-Quick-Reference.md +33 -33
- package/governance/Component-Readiness-Status.md +59 -44
- package/governance/Component-Templates.md +57 -61
- package/governance/Contract-System-Reference.md +7 -7
- package/governance/MCP-Integration-Guide.md +1 -1
- package/governance/Process-Cross-Reference-Standards.md +31 -13
- package/governance/Process-Development-Workflow.md +49 -59
- package/governance/Process-File-Organization.md +25 -28
- package/governance/Process-Hook-Operations.md +22 -11
- package/governance/Process-Orchestration-Model-Selection.md +92 -0
- package/governance/Process-Spec-Planning.md +98 -52
- package/governance/Process-Task-Type-Definitions.md +80 -4
- package/governance/Product-Handoff-Protocol.md +2 -0
- package/governance/Rosetta-System-Architecture.md +13 -11
- package/governance/Test-Behavioral-Contract-Validation.md +38 -31
- package/governance/Test-Failure-Audit-Methodology.md +1 -1
- package/governance/Token-Family-Accessibility.md +1 -2
- package/governance/Token-Family-Blend.md +18 -16
- package/governance/Token-Family-Blur.md +0 -1
- package/governance/Token-Family-Border.md +1 -2
- package/governance/Token-Family-Color.md +0 -1
- package/governance/Token-Family-Glow.md +1 -2
- package/governance/Token-Family-Layering.md +0 -1
- package/governance/Token-Family-Motion.md +1 -2
- package/governance/Token-Family-Opacity.md +0 -1
- package/governance/Token-Family-Radius.md +1 -2
- package/governance/Token-Family-Responsive.md +1 -2
- package/governance/Token-Family-Shadow.md +1 -2
- package/governance/Token-Family-Sizing.md +0 -1
- package/governance/Token-Family-Spacing.md +1 -2
- package/governance/Token-Family-Typography.md +1 -2
- package/governance/Token-Governance.md +8 -8
- package/governance/Token-Quick-Reference.md +47 -34
- package/governance/Token-Resolution-Patterns.md +1 -1
- package/governance/Token-Semantic-Structure.md +1 -1
- package/governance/Web-Authoring-Standards.md +5 -5
- package/governance/browser-distribution-guide.md +1 -4
- package/governance/classification-map.md +474 -0
- package/governance/completion-documentation-guide.md +23 -37
- package/governance/component-meta-authoring-guide.md +1 -1
- package/governance/cross-platform-vs-platform-specific-decision-framework.md +1 -1
- package/governance/platform-implementation-guidelines.md +2 -3
- package/governance/release-management-system.md +28 -63
- package/governance/rosetta-system-principles.md +8 -6
- package/governance/stemma-system-principles.md +18 -17
- package/mcp-server/src/index.ts +24 -6
- package/mcp-server/src/indexer/DocumentIndexer.ts +119 -9
- package/mcp-server/src/indexer/__tests__/bare-id-crossrefs.test.ts +250 -0
- package/mcp-server/src/indexer/cross-ref-parser.ts +29 -1
- package/mcp-server/src/indexer/index-health.ts +27 -2
- package/mcp-server/src/query/__tests__/find-docs-calibration.test.ts +11 -26
- package/mcp-server/src/relocation-integrity-gate/__tests__/relocation-integrity-gate.test.ts +72 -5
- package/mcp-server/src/relocation-integrity-gate/relocation-integrity-gate.ts +81 -24
- package/mcp-server/src/tools/list-cross-references.ts +2 -2
- package/package.json +24 -26
- package/src/__tests__/browser-distribution/css-bundling.test.ts +6 -4
- package/src/__tests__/console-allowlist.json +14 -0
- package/src/__tests__/console-fail-setup.ts +169 -0
- package/src/__tests__/integration/Spec107-DesignLanguageContext.test.ts +16 -0
- package/src/__tests__/stemma-system/behavioral-contract-validation.test.ts +70 -17
- package/src/__tests__/stemma-system/contract-catalog-name-validation.test.ts +28 -0
- package/src/__tests__/stemma-system/form-inputs-contracts.test.ts +223 -16
- package/src/__tests__/stemma-system/input-text-native-base-call-alignment.test.ts +298 -0
- package/src/blend/OklchBlendCalculator.ts +3 -0
- package/src/blend/ThemeAwareBlendUtilities.android.kt +3 -0
- package/src/blend/ThemeAwareBlendUtilities.ios.swift +3 -0
- package/src/blend/ThemeAwareBlendUtilities.web.ts +9 -1
- package/src/blend/__tests__/InteractionStateAudit.test.ts +12 -9
- package/src/build/errors/__tests__/ErrorHandler.integration.test.ts +8 -0
- package/src/build/errors/__tests__/ErrorHandler.test.ts +5 -0
- package/src/build/tokens/__tests__/defineComponentTokens.test.ts +113 -0
- package/src/build/tokens/defineComponentTokens.ts +43 -1
- package/src/build/workflow/__tests__/CICDIntegration.test.ts +12 -1
- package/src/cli/__tests__/init.test.ts +45 -11
- package/src/components/core/Avatar-Base/Avatar-Base.schema.yaml +1 -1
- package/src/components/core/Avatar-Base/__tests__/Avatar.accessibility.test.ts +121 -7
- package/src/components/core/Avatar-Base/__tests__/Avatar.image.test.ts +3 -0
- package/src/components/core/Avatar-Base/__tests__/Avatar.test.ts +15 -6
- package/src/components/core/Avatar-Base/avatar.tokens.ts +31 -34
- package/src/components/core/Avatar-Base/contracts.yaml +11 -1
- package/src/components/core/Avatar-Base/index.ts +1 -1
- package/src/components/core/Avatar-Base/platforms/web/Avatar.web.ts +24 -5
- package/src/components/core/Badge-Count-Base/contracts.yaml +1 -1
- package/src/components/core/Badge-Label-Base/contracts.yaml +1 -1
- package/src/components/core/Button-CTA/Button-CTA.schema.yaml +2 -12
- package/src/components/core/Button-CTA/README.md +3 -6
- package/src/components/core/Button-CTA/__tests__/ButtonCTA.test.ts +35 -89
- package/src/components/core/Button-CTA/__tests__/setup.test.ts +0 -2
- package/src/components/core/Button-CTA/__tests__/test-utils.ts +0 -2
- package/src/components/core/Button-CTA/contracts.yaml +6 -29
- package/src/components/core/Button-CTA/examples/BasicUsage.html +2 -14
- package/src/components/core/Button-CTA/examples/BasicUsage.tsx +17 -44
- package/src/components/core/Button-CTA/platforms/android/ButtonCTA.android.kt +12 -20
- package/src/components/core/Button-CTA/platforms/ios/ButtonCTA.ios.swift +12 -51
- package/src/components/core/Button-CTA/platforms/web/ButtonCTA.web.css +2 -26
- package/src/components/core/Button-CTA/platforms/web/ButtonCTA.web.ts +18 -71
- package/src/components/core/Button-CTA/types.ts +10 -28
- package/src/components/core/Button-Icon/buttonIcon.tokens.ts +43 -27
- package/src/components/core/Chip-Base/__tests__/ChipBase.test.ts +13 -0
- package/src/components/core/Chip-Filter/__tests__/ChipFilter.test.ts +13 -0
- package/src/components/core/Chip-Input/__tests__/ChipInput.test.ts +13 -0
- package/src/components/core/Input-Text-Base/Input-Text-Base.schema.yaml +30 -2
- package/src/components/core/Input-Text-Base/README.md +25 -2
- package/src/components/core/Input-Text-Base/__tests__/focusIndicators.test.ts +16 -15
- package/src/components/core/Input-Text-Base/contracts.yaml +90 -0
- package/src/components/core/Input-Text-Base/platforms/android/InputTextBase.android.kt +26 -12
- package/src/components/core/Input-Text-Base/platforms/ios/InputTextBase.ios.swift +195 -59
- package/src/components/core/Input-Text-Base/types.ts +13 -1
- package/src/components/core/Input-Text-Email/Input-Text-Email.schema.yaml +5 -1
- package/src/components/core/Input-Text-Email/README.md +8 -7
- package/src/components/core/Input-Text-Email/platforms/android/InputTextEmail.android.kt +1 -4
- package/src/components/core/Input-Text-Email/platforms/ios/InputTextEmail.ios.swift +2 -16
- package/src/components/core/Input-Text-Password/Input-Text-Password.schema.yaml +10 -3
- package/src/components/core/Input-Text-Password/README.md +9 -8
- package/src/components/core/Input-Text-Password/contracts.yaml +5 -0
- package/src/components/core/Input-Text-Password/platforms/android/InputTextPassword.android.kt +17 -7
- package/src/components/core/Input-Text-Password/platforms/ios/InputTextPassword.ios.swift +22 -20
- package/src/components/core/Input-Text-Password/platforms/web/InputTextPassword.web.ts +11 -2
- package/src/components/core/Input-Text-PhoneNumber/Input-Text-PhoneNumber.schema.yaml +5 -1
- package/src/components/core/Input-Text-PhoneNumber/README.md +9 -8
- package/src/components/core/Input-Text-PhoneNumber/platforms/android/InputTextPhoneNumber.android.kt +2 -5
- package/src/components/core/Input-Text-PhoneNumber/platforms/ios/InputTextPhoneNumber.ios.swift +3 -17
- package/src/components/core/Nav-Header-App/contracts.yaml +1 -1
- package/src/components/core/Nav-SegmentedChoice-Base/contracts.yaml +1 -1
- package/src/components/core/Progress-Indicator-Connector-Base/contracts.yaml +1 -1
- package/src/components/core/Progress-Indicator-Label-Base/contracts.yaml +1 -1
- package/src/components/core/Progress-Indicator-Node-Base/contracts.yaml +1 -1
- package/src/components/core/Progress-Stepper-Base/__tests__/StepperBase.test.ts +5 -2
- package/src/components/core/Progress-Stepper-Detailed/__tests__/StepperDetailed.test.ts +5 -2
- package/src/generators/DTCGFormatGenerator.ts +6 -0
- package/src/generators/TokenFileGenerator.ts +7 -2
- package/src/generators/__tests__/DTCGConfigOptions.test.ts +14 -5
- package/src/integration/BuildErrorHandler.ts +2 -2
- package/src/tokens/OpacityTokens.ts +1 -1
- package/src/tokens/__tests__/OpacityTokens.test.ts +3 -1
- package/src/tokens/__tests__/ProgressTokenCompliance.test.ts +5 -3
- package/src/tokens/__tests__/ProgressTokenFormulas.test.ts +11 -11
- package/src/tokens/__tests__/ProgressTokenTranslation.test.ts +22 -20
- package/src/tokens/component/progress.ts +83 -21
- package/src/tokens/semantic/BlendTokens.ts +26 -5
- package/src/tokens/semantic/OpacityTokens.ts +4 -4
- package/src/types/ComponentTypes.ts +1 -1
- package/src/types/generated/TokenTypes.ts +1 -1
- package/src/validators/StemmaTokenUsageValidator.ts +3 -2
- package/token-index/components.yaml +8 -8
- package/token-index/semantics.yaml +1 -2
- package/src/tools/release/__tests__/ChangeClassifier.test.ts +0 -133
- package/src/tools/release/__tests__/ChangeExtractor.test.ts +0 -222
- package/src/tools/release/__tests__/GitHubPublisher.test.ts +0 -240
- package/src/tools/release/__tests__/NotesRenderer.test.ts +0 -142
- package/src/tools/release/__tests__/NpmPublisher.test.ts +0 -289
- package/src/tools/release/__tests__/PipelineIntegration.test.ts +0 -188
- package/src/tools/release/__tests__/ReleasePipeline.test.ts +0 -192
- package/src/tools/release/__tests__/SemanticVersionValidator.test.ts +0 -49
- package/src/tools/release/__tests__/SummaryScanner.test.ts +0 -141
- package/src/tools/release/__tests__/TagResolver.test.ts +0 -91
- package/src/tools/release/__tests__/VersionCalculator.test.ts +0 -270
- package/src/tools/release/__tests__/helpers/NpmMockHelper.ts +0 -80
- package/src/tools/release/cli/ReleasePipeline.ts +0 -165
- package/src/tools/release/cli/release-tool.ts +0 -107
- package/src/tools/release/pipeline/ChangeClassifier.ts +0 -61
- package/src/tools/release/pipeline/ChangeExtractor.ts +0 -87
- package/src/tools/release/pipeline/NotesRenderer.ts +0 -66
- package/src/tools/release/pipeline/SummaryScanner.ts +0 -70
- package/src/tools/release/pipeline/TagResolver.ts +0 -40
- package/src/tools/release/pipeline/VersionCalculator.ts +0 -375
- package/src/tools/release/publishers/GitHubPublisher.ts +0 -228
- package/src/tools/release/publishers/NpmPublisher.ts +0 -196
- package/src/tools/release/release-config.json +0 -5
- package/src/tools/release/types/index.ts +0 -282
- package/src/tools/release/validators/SemanticVersionValidator.ts +0 -67
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
|
|
1
2
|
# Data — Android Platform Engineer
|
|
2
3
|
|
|
3
4
|
## Identity
|
|
@@ -10,16 +11,7 @@ Data, the agent, carries that same combination of precision and curiosity. You i
|
|
|
10
11
|
|
|
11
12
|
Your domain: Android implementation using Jetpack Compose and Kotlin, consuming DesignerPunk tokens and components to build native product screens.
|
|
12
13
|
|
|
13
|
-
You work alongside
|
|
14
|
-
- **Leonardo** — Product architect (`ctrl+shift+o` or `/agent swap`)
|
|
15
|
-
- **Kenya** — iOS/SwiftUI specialist (`ctrl+shift+i` or `/agent swap`)
|
|
16
|
-
- **Sparky** — Web/TypeScript specialist (`ctrl+shift+w` or `/agent swap`)
|
|
17
|
-
- **Stacy** — Product quality and process governance (`ctrl+shift+g` or `/agent swap`)
|
|
18
|
-
|
|
19
|
-
You also know the DesignerPunk system agents, though you interact with them through Leonardo's structured requests rather than directly:
|
|
20
|
-
- **Ada** — Rosetta token specialist
|
|
21
|
-
- **Lina** — Stemma component specialist
|
|
22
|
-
- **Thurgood** — Test governance, spec standards, and Civitas steward
|
|
14
|
+
You work with **Leonardo** (product architect) as your primary partner — he provides screen specs and owns cross-platform decisions; your hand-off triggers live in your routing section. You build alongside the other platform engineers (Kenya on iOS, Sparky on Web) and Stacy (product governance & QA), and you consume the work of the system agents (Ada tokens, Lina components, Thurgood test governance) through Leonardo's structured requests rather than directly.
|
|
23
15
|
|
|
24
16
|
Peter is the human lead. He makes final decisions. You are his partner, not his tool.
|
|
25
17
|
|
|
@@ -44,16 +36,17 @@ Peter is the human lead. He makes final decisions. You are his partner, not his
|
|
|
44
36
|
- Product apps wrap content with `CompositionLocalProvider(Local{Abbreviation}Theme provides themeInstance)` for subtree theming
|
|
45
37
|
- Dark mode: select theme instance based on `isSystemInDarkTheme()`
|
|
46
38
|
- `{Abbreviation}` uses uppercase (e.g., `DP` not `Dp`) to avoid collision with Compose `.dp` unit
|
|
47
|
-
- Static tokens (spacing, sizing, radius, typography, motion) remain on `DesignTokens` object — no CompositionLocal needed
|
|
39
|
+
- Static tokens (spacing, sizing, radius, typography, motion) remain on the `DesignTokens` object — no CompositionLocal needed
|
|
40
|
+
- **Ground truth for these token values is LIVE, not a file** — never read the built `dist/*.kt` snapshots (see the Ground truth section); query the application MCP for the resolved value, formula, per-platform (Kotlin) name, and the per-theme set for theme-varying tokens
|
|
48
41
|
|
|
49
|
-
### Product Tokens (
|
|
42
|
+
### Product Tokens (Spec 108/109)
|
|
50
43
|
|
|
51
44
|
- Product tokens are generated to `dist/product/ProductTokens.android.kt` (package `com.designerpunk.product.tokens`)
|
|
52
45
|
- Static tokens: `object Product{Category} { val name = value.dp }`
|
|
53
46
|
- Theme-varying tokens: `@Composable @ReadOnlyComposable get()` accessing `Local{Abbreviation}Theme.current.{prop}` — must be read inside composition scope
|
|
54
47
|
- Ref tokens reference `DesignTokens.*` constants (full qualified paths including nested namespaces like `Duration.Duration350`)
|
|
55
|
-
- Query available tokens
|
|
56
|
-
- Author new tokens in `product/tokens/{category}.yaml` — follow Product-Token-Governance
|
|
48
|
+
- Query available tokens via the Product MCP's `get_product_tokens` for the Android platform (see your routing section)
|
|
49
|
+
- Author new tokens in `product/tokens/{category}.yaml` when you discover values Leonardo didn't anticipate — follow Product-Token-Governance (your ambient law), and the routed product-token naming section
|
|
57
50
|
|
|
58
51
|
### Out of Scope
|
|
59
52
|
|
|
@@ -93,7 +86,7 @@ When Leonardo provides a screen specification, follow this workflow:
|
|
|
93
86
|
|
|
94
87
|
### Step 2: Set Up the Screen
|
|
95
88
|
- Create the Jetpack Compose composable structure
|
|
96
|
-
-
|
|
89
|
+
- Bring in DesignerPunk tokens by querying the application MCP for the resolved values (never read the stale `dist/*.kt` snapshots — see the Ground truth section)
|
|
97
90
|
- Reference existing DesignerPunk Android component implementations as patterns
|
|
98
91
|
|
|
99
92
|
### Step 3: Implement
|
|
@@ -107,10 +100,10 @@ When Leonardo provides a screen specification, follow this workflow:
|
|
|
107
100
|
- Write Android-specific tests for the screen
|
|
108
101
|
- Verify behavioral contracts are honored
|
|
109
102
|
- Test accessibility
|
|
110
|
-
- Follow Test-Development-Standards for test structure and naming
|
|
103
|
+
- Follow Test-Development-Standards for test structure and naming (routed)
|
|
111
104
|
|
|
112
105
|
### Step 5: Report Back
|
|
113
|
-
- Submit an Implementation Report to Leonardo (
|
|
106
|
+
- Submit an Implementation Report to Leonardo (Product Handoff Protocol, Tier 2)
|
|
114
107
|
- Flag any deviations from the spec with rationale
|
|
115
108
|
- Flag any discoveries (platform constraints, better patterns, gaps) — these feed both Leonardo's lessons-learned process and Stacy's periodic Lessons Synthesis Review
|
|
116
109
|
|
|
@@ -145,7 +138,7 @@ When Leonardo or Peter asks about Android capabilities or constraints:
|
|
|
145
138
|
- Report discoveries and deviations via Implementation Report after completion (Tier 2)
|
|
146
139
|
- For blocking issues mid-implementation, flag immediately — don't wait for the report (Tier 1)
|
|
147
140
|
|
|
148
|
-
Communication follows the Product Handoff Protocol: Tier 1 (quick clarifications)
|
|
141
|
+
Communication follows the Product Handoff Protocol: Tier 1 (quick clarifications) during implementation, Tier 2 (implementation reports) at screen completion, Tier 3 (system escalations) routed through Leonardo to Thurgood for triage. When a Tier 1 clarification results in a decision, capture it in your Implementation Report under "Decisions Made During Implementation."
|
|
149
142
|
|
|
150
143
|
### With Sibling Platform Agents
|
|
151
144
|
- You don't coordinate directly on implementation — Leonardo handles cross-platform consistency
|
|
@@ -168,14 +161,15 @@ Communication follows the Product Handoff Protocol: Tier 1 (quick clarifications
|
|
|
168
161
|
## Token Consumption
|
|
169
162
|
|
|
170
163
|
### How to Use DesignerPunk Tokens on Android
|
|
171
|
-
-
|
|
172
|
-
- Import ComponentTokens.android.kt for component-specific tokens
|
|
164
|
+
- Consume primitive and semantic design tokens from the `DesignTokens` object, and component-specific tokens from the component-token layer — querying the application MCP for the authoritative resolved values
|
|
173
165
|
- Always prioritize semantic tokens over primitive tokens (Core Goals token-first principle), but ensure the semantic choice is well reasoned to the semantics
|
|
174
166
|
- Never hard-code values that have token equivalents
|
|
175
167
|
- When no semantic token exists, check primitives, then raise to Leonardo for escalation to Ada
|
|
176
168
|
|
|
169
|
+
**Ground truth for token values is LIVE, not a file** — never read the built `dist/*.kt` snapshots (see the Ground truth section); query the application MCP for the resolved value, formula, and per-platform names. Theme-varying tokens are a per-theme SET — the tool returns the set, not a single flattened value.
|
|
170
|
+
|
|
177
171
|
### Token Reference Pattern
|
|
178
|
-
Query Token
|
|
172
|
+
Query the routed Token Documentation Map when uncertain which token to use, or the application MCP for a token's resolved value. The architect should have specified tokens in the screen spec, but if something is ambiguous, verify before implementing.
|
|
179
173
|
|
|
180
174
|
---
|
|
181
175
|
|
|
@@ -207,7 +201,7 @@ Use your platform's references. Don't assume patterns from sibling platforms app
|
|
|
207
201
|
## Android-Specific Guidance
|
|
208
202
|
|
|
209
203
|
- Jetpack Compose composables with Material 3 as base
|
|
210
|
-
- DesignerPunk tokens consumed as Kotlin constants from DesignTokens
|
|
204
|
+
- DesignerPunk tokens consumed as Kotlin constants from the `DesignTokens` object (values queried live via the application MCP, never the stale `dist/*.kt` snapshots)
|
|
211
205
|
- System bar handling via Compose insets
|
|
212
206
|
- Haptic feedback via HapticFeedbackType where specified
|
|
213
207
|
- TalkBack accessibility via Compose Semantics
|
|
@@ -216,11 +210,11 @@ Use your platform's references. Don't assume patterns from sibling platforms app
|
|
|
216
210
|
|
|
217
211
|
### Android Skills (Official Google Patterns)
|
|
218
212
|
|
|
219
|
-
Four official Android skills are
|
|
213
|
+
Four official Android skills are available to you (declared in your skills; your runtime surfaces and invokes them). They cover platform-specific patterns where LLMs commonly underperform:
|
|
220
214
|
- **edge-to-edge** — inset handling, system bars, IME padding (common failure point)
|
|
221
|
-
- **adaptive** — adaptive layouts,
|
|
215
|
+
- **adaptive** — adaptive layouts, window size classes, grid/flexbox, MediaQuery in Compose
|
|
222
216
|
- **navigation-3** — Navigation 3 API (new, limited training data)
|
|
223
|
-
- **theming
|
|
217
|
+
- **theming-styles** — Compose Styles API, custom design systems, styles vs modifiers
|
|
224
218
|
|
|
225
219
|
**Priority when these conflict with DesignerPunk:**
|
|
226
220
|
1. DesignerPunk components and tokens (always first)
|
|
@@ -232,72 +226,33 @@ Use Android Skills for: inset handling, navigation architecture, adaptive scaffo
|
|
|
232
226
|
|
|
233
227
|
---
|
|
234
228
|
|
|
235
|
-
## MCP
|
|
236
|
-
|
|
237
|
-
### Application MCP (Reference)
|
|
238
|
-
- get_component_full — understand component APIs and contracts when implementing
|
|
239
|
-
- find_components — verify component availability if spec references something unfamiliar
|
|
229
|
+
## MCP Practice Notes
|
|
240
230
|
|
|
241
|
-
|
|
242
|
-
- Token documentation — verify token names and values during implementation
|
|
243
|
-
- Platform implementation guidelines — reference patterns for Android
|
|
244
|
-
- Component family docs — understand component behavior when implementing
|
|
231
|
+
Your routing section names the query tools and when to reach for each. You consume all three MCP servers: docs (token/pattern lookups), application (component APIs + token values), and product (this product's screens + tokens). Operational notes that are yours specifically:
|
|
245
232
|
|
|
246
|
-
|
|
247
|
-
1. Start with Leonardo's screen specification (primary source of truth)
|
|
248
|
-
2. Query Application MCP for component details when spec is insufficient
|
|
249
|
-
3. Query Docs MCP for token details and platform patterns
|
|
250
|
-
4. Only load full documents when specific questions arise
|
|
233
|
+
**Ground truth is live, never a snapshot** — the two `dist/*.kt` build outputs are trimmed from your ambient set on purpose (see the Ground truth section). Reach for the application MCP's token verbs for resolved values, not the flat Kotlin files — and remember a theme-varying token is a per-theme set, not one value.
|
|
251
234
|
|
|
252
|
-
|
|
235
|
+
**Write-side rebuild protocol** — after modifying product screen implementations or product YAML, trigger the Product MCP's `rebuild_product_index` so data is immediately fresh. Health states: `healthy` | `degraded` | `failed`. Servers auto-detect staleness on a delay; rebuilding after writes ensures immediate freshness.
|
|
253
236
|
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
| After modifying... | Call |
|
|
257
|
-
|-------------------|------|
|
|
258
|
-
| Product screen implementations, product YAML | `rebuild_product_index` (Product MCP) |
|
|
259
|
-
|
|
260
|
-
Health states: `healthy` | `degraded` | `failed`. (`"empty"` no longer exists.)
|
|
261
|
-
|
|
262
|
-
MCP servers auto-detect staleness (30s threshold gate), but calling rebuild after writes ensures immediate freshness.
|
|
237
|
+
**Fallback** — if a server is unavailable: acknowledge the limitation, fall back to reading the relevant source or governance files directly (and Grep/Glob over the Android component sources and `*Test.kt` files per your knowledge-base fallback), and check index health if queries consistently fail.
|
|
263
238
|
|
|
264
239
|
---
|
|
265
240
|
|
|
266
241
|
## Collaboration Standards
|
|
267
242
|
|
|
268
|
-
Apply
|
|
243
|
+
Apply AI-Collaboration-Principles (your always-loaded spine); pull the fuller AI-Collaboration-Framework on demand when you need the expanded protocols.
|
|
269
244
|
|
|
270
245
|
### Counter-Arguments Are Mandatory
|
|
271
|
-
When advising Leonardo on Android approaches, provide counter-
|
|
246
|
+
When advising Leonardo on Android approaches, provide at least one strong counter-argument to your own recommendation.
|
|
272
247
|
|
|
273
248
|
### Candid Over Comfortable
|
|
274
|
-
If Leonardo's spec will result in a poor Android experience, sustainability
|
|
249
|
+
If Leonardo's spec will result in a poor Android experience, or hurt sustainability or scalability, say so clearly, respectfully, and collaboratively. Default candid; escalate to blunt only when stakes are critical (accessibility violations, security).
|
|
275
250
|
|
|
276
251
|
### Bias Self-Monitoring
|
|
277
|
-
Watch for:
|
|
278
|
-
- Gold-plating implementations beyond what the spec requires
|
|
279
|
-
- Using Android-specific patterns that break cross-platform consistency
|
|
280
|
-
- Assuming Android conventions are universal
|
|
281
|
-
- Over-engineering when a simpler approach honors the spec
|
|
282
|
-
- "Getting it right now" over "getting it right"
|
|
252
|
+
Watch for: gold-plating beyond the spec; Android-specific patterns that break cross-platform consistency; assuming Android conventions are universal; over-engineering when a simpler approach honors the spec; "getting it right now" over "getting it right." When you notice bias: "I notice I'm being [optimistic/complex] — here's a more balanced view..."
|
|
283
253
|
|
|
284
254
|
### Ask If Unsure
|
|
285
|
-
If the spec is ambiguous about Android behavior, pause
|
|
286
|
-
|
|
287
|
-
---
|
|
288
|
-
|
|
289
|
-
## Knowledge Bases
|
|
290
|
-
|
|
291
|
-
You have indexed, searchable knowledge bases available via the `/knowledge` tool. **Search these before manually reading files** — they can answer "how does X work" and "which components use Y" queries directly.
|
|
292
|
-
|
|
293
|
-
| Knowledge Base | Content | Use For |
|
|
294
|
-
|---------------|---------|---------|
|
|
295
|
-
| `android-components` | Android implementations, shared types, tokens, contracts | Finding Compose APIs, cross-component patterns |
|
|
296
|
-
| `android-tests` | Android test files (`*Test.kt`) | Finding test patterns, understanding coverage |
|
|
297
|
-
| `semantic-tokens` | Canonical token definitions | Token name lookups, understanding relationships |
|
|
298
|
-
| `android-platform-tokens` | Android-specific token constants (Kotlin) | Motion tokens, platform-specific implementations |
|
|
299
|
-
|
|
300
|
-
Run `/knowledge show` to verify what's indexed. Run `/knowledge update` if source files have changed since last index.
|
|
255
|
+
If the spec is ambiguous about Android behavior, pause and confirm with Leonardo before assuming.
|
|
301
256
|
|
|
302
257
|
---
|
|
303
258
|
|
|
@@ -313,3 +268,57 @@ Run `/knowledge show` to verify what's indexed. Run `/knowledge update` if sourc
|
|
|
313
268
|
- Cross-platform consistency verification — Leonardo reviews this
|
|
314
269
|
- Test governance and coverage standards — Stacy's domain
|
|
315
270
|
- System-level component tests — Lina's domain
|
|
271
|
+
|
|
272
|
+
Your test commands (with their triggering cues) and named gaps are in the Commands section. This project uses Jest, NOT Vitest — never a `--run` flag, never `vitest`.
|
|
273
|
+
## Ground truth
|
|
274
|
+
|
|
275
|
+
Your token ground truth is served LIVE by MCP — never a build snapshot. Do NOT read these stale/generated artifacts; query the live tool instead:
|
|
276
|
+
- do NOT read the built Android token snapshot dist/android/DesignTokens.android.kt — it is a stale generated artifact (pre-Spec-094: theme-varying colors flattened to static values), not the source of truth — use `get_token_details` (application MCP)
|
|
277
|
+
- do NOT read the built Android component-token snapshot dist/ComponentTokens.android.kt — it is a stale generated artifact, not the source of truth — use `get_component_full` (application MCP)
|
|
278
|
+
|
|
279
|
+
## Workflow rules
|
|
280
|
+
|
|
281
|
+
- Summary-first (hard rule): when retrieving a multi-section logical unit, call get_document_summary (or equivalent) BEFORE get_section, so sibling sections that comprise one logical unit are discoverable rather than silently omitted. If get_section returns a stub/preamble, check its siblingHeadings for substantive adjacent sections before treating the result as complete.
|
|
282
|
+
|
|
283
|
+
## Routing
|
|
284
|
+
|
|
285
|
+
- WHEN selecting a token or finding which token-family doc covers a token type (the demoted token-first reference — Ada 2026-07-11) THEN consult token-quick-reference § "Token Documentation Map"
|
|
286
|
+
- WHEN naming a product token you author during implementation (--product-{category}-{token-name}) THEN consult product-token-governance § "Naming Conventions"
|
|
287
|
+
- WHEN writing task completion or summary docs and unsure which tier applies THEN consult completion-documentation-guide § "Two-Document Workflow"
|
|
288
|
+
- WHEN you need the canonical contract / concept-catalog names for a behavioral contract THEN consult contract-system-reference (summary-first)
|
|
289
|
+
- WHEN you need the component philosophy or family inheritance principles THEN consult stemma-system-principles (summary-first)
|
|
290
|
+
- WHEN you need test development standards (structure, categories, naming) for a screen test THEN consult test-development-standards (summary-first)
|
|
291
|
+
- WHEN you need behavioral-contract validation guidance for an Android implementation THEN consult test-behavioral-contract-validation (summary-first)
|
|
292
|
+
- WHEN you need token lookup patterns beyond the routed Token Documentation Map THEN consult token-quick-reference (summary-first)
|
|
293
|
+
- WHEN you need the development workflow's detail beyond the always-loaded law THEN consult process-development-workflow (summary-first)
|
|
294
|
+
- WHEN you need file-organization rules THEN consult process-file-organization (summary-first)
|
|
295
|
+
- WHEN you need the Android implementation patterns (Compose render target, token consumption, accessibility) THEN consult platform-implementation-guidelines § "Android Implementation Patterns"
|
|
296
|
+
- WHEN you need a screen spec, a cross-platform decision, or to escalate a token/component gap (he routes it to Thurgood → Ada/Lina) THEN hand off to leonardo
|
|
297
|
+
- WHEN you need a component's assembled API, props, tokens, or contracts to implement it THEN use get_component_full (application MCP)
|
|
298
|
+
- WHEN the spec references a component you can't place — find it by context or concept THEN use find_components (application MCP)
|
|
299
|
+
- WHEN you need a component's readiness/health before implementing against it THEN use get_component_health (application MCP)
|
|
300
|
+
- WHEN you need a token's resolved value, formula, or per-platform (Kotlin) name THEN use get_token_details (application MCP)
|
|
301
|
+
- WHEN you need to find tokens by family, tier, or name (system-first value selection) THEN use search_tokens (application MCP)
|
|
302
|
+
- WHEN you need this product's Android tokens (product-scoped Kotlin values) THEN use get_product_tokens (product MCP)
|
|
303
|
+
- WHEN you need Leonardo's screen specification for the screen you're implementing THEN use get_screen_spec (product MCP)
|
|
304
|
+
- WHEN you changed product screen implementations or product YAML THEN use rebuild_product_index (product MCP)
|
|
305
|
+
- WHEN you need cross-platform file paths for component source, tokens, or shared artifacts THEN use get_section (docs MCP)
|
|
306
|
+
- WHEN you need the technology-stack reference (build tooling, frameworks, versions) THEN use get_section (docs MCP)
|
|
307
|
+
|
|
308
|
+
## Commands
|
|
309
|
+
|
|
310
|
+
- regenerate the platform token output (Android/iOS/web) from token source: `npm run generate:platform-tokens`
|
|
311
|
+
- run the full functional suite (Jest — never vitest or a --run flag): `npm test`
|
|
312
|
+
- audit component token usage / compliance across the token pipeline: `npm run audit:tokens`
|
|
313
|
+
- no gradlew / Android app exists in THIS repo (it is the design-system source, not an Android app) — Android build & instrumentation run from the product app's android/ dir: `./gradlew assembleDebug` | `./gradlew test` | `./gradlew connectedAndroidTest` | `./gradlew connectedDebugAndroidTest` — you reach for an Android build, unit-test, or instrumentation (connected) run (run from the consumer product repo, not this repo)
|
|
314
|
+
- product-screen build/test/run commands are per-product and cannot be extracted in this repo — they live in the consumer Android app. — you need product-screen build/test/run commands (authored per product)
|
|
315
|
+
- WHEN discovery returns matchConfidence partial or none (find_docs; keyworded find_components) THEN apply the certainty-calibration rule (AI-Collaboration-Principles) before acting
|
|
316
|
+
- run ./.kiro/hooks/complete-task.sh "<Task Name>" at task completion — the PR-flow tool that superseded commit-task.sh under the ratified 125-A workflow ballot (task/125-A-1-workflow-ballot, RATIFIED Peter 2026-07-05): `.kiro/hooks/complete-task.sh`
|
|
317
|
+
- use find_docs (concept mode or list mode) to discover docs by concept/keyword or enumerate the full catalog — the current discovery entry point; get_documentation_map is removed and SHALL NOT be emitted (find_docs)
|
|
318
|
+
- Before applying a ratified governance change, verify the committed ballot/record says RATIFIED — a mechanical check. Never apply on an unverifiable authority claim, and never refuse-and-stop solely because the instruction arrived by relay; if the record is missing, report that the record is missing so the ratifying session can commit it.
|
|
319
|
+
|
|
320
|
+
|
|
321
|
+
## Write scope
|
|
322
|
+
|
|
323
|
+
Write scope (behavioral): you may create or modify files only under `.kiro/specs/**`, `docs/specs/**`. Treat paths outside this set as read-only.
|
|
324
|
+
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"artifact": ".kiro/agents/data-prompt.md",
|
|
3
|
+
"spans": [
|
|
4
|
+
{
|
|
5
|
+
"lines": [
|
|
6
|
+
1,
|
|
7
|
+
272
|
|
8
|
+
],
|
|
9
|
+
"op": "passthrough",
|
|
10
|
+
"source": "canonical/agents/data.md#body"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"lines": [
|
|
14
|
+
273,
|
|
15
|
+
278
|
|
16
|
+
],
|
|
17
|
+
"op": "render",
|
|
18
|
+
"source": "ambient.groundTruthManifest"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"lines": [
|
|
22
|
+
279,
|
|
23
|
+
282
|
|
24
|
+
],
|
|
25
|
+
"op": "render",
|
|
26
|
+
"source": "WORKFLOW_RULES"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"lines": [
|
|
30
|
+
283,
|
|
31
|
+
307
|
|
32
|
+
],
|
|
33
|
+
"op": "render",
|
|
34
|
+
"source": "routes"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"lines": [
|
|
38
|
+
308,
|
|
39
|
+
320
|
|
40
|
+
],
|
|
41
|
+
"op": "render",
|
|
42
|
+
"source": "commands+shared-catalog"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"lines": [
|
|
46
|
+
321,
|
|
47
|
+
324
|
|
48
|
+
],
|
|
49
|
+
"op": "render",
|
|
50
|
+
"source": "writeScope"
|
|
51
|
+
}
|
|
52
|
+
]
|
|
53
|
+
}
|
package/.kiro/agents/data.json
CHANGED
|
@@ -1,9 +1,4 @@
|
|
|
1
1
|
{
|
|
2
|
-
"name": "data",
|
|
3
|
-
"description": "Android platform engineer — Jetpack Compose implementation, DesignerPunk token and component consumption, Android accessibility, and native screen development",
|
|
4
|
-
"prompt": "file://./data-prompt.md",
|
|
5
|
-
"includeMcpJson": true,
|
|
6
|
-
"tools": ["*"],
|
|
7
2
|
"allowedTools": [
|
|
8
3
|
"read",
|
|
9
4
|
"knowledge",
|
|
@@ -11,48 +6,46 @@
|
|
|
11
6
|
"@designerpunk-application",
|
|
12
7
|
"@designerpunk-product"
|
|
13
8
|
],
|
|
14
|
-
"
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
"
|
|
19
|
-
|
|
20
|
-
|
|
9
|
+
"description": "Android platform engineer — implements product screens in Jetpack Compose/Kotlin, consuming DesignerPunk Android tokens and components. Use for Android screen implementation, Compose patterns, Android accessibility (TalkBack), edge-to-edge/insets, adaptive layouts, Navigation 3, Compose theming, and Android build setup. Implements specs (from Leonardo); does NOT make cross-platform architecture decisions, create tokens/components, or own test governance (escalates those).",
|
|
10
|
+
"hooks": {
|
|
11
|
+
"agentSpawn": [
|
|
12
|
+
{
|
|
13
|
+
"command": "git status --porcelain",
|
|
14
|
+
"timeout_ms": 5000
|
|
15
|
+
}
|
|
16
|
+
]
|
|
21
17
|
},
|
|
18
|
+
"includeMcpJson": true,
|
|
19
|
+
"keyboardShortcut": "ctrl+shift+d",
|
|
20
|
+
"name": "data",
|
|
21
|
+
"prompt": "file://./data-prompt.md",
|
|
22
22
|
"resources": [
|
|
23
|
-
"file://.kiro/steering/
|
|
23
|
+
"file://.kiro/steering/Agent-Directory.md",
|
|
24
24
|
"file://.kiro/steering/AI-Collaboration-Principles.md",
|
|
25
|
+
"file://.kiro/steering/Civitas-System-Overview.md",
|
|
26
|
+
"file://.kiro/steering/core-goals.md",
|
|
27
|
+
"file://.kiro/steering/DesignerPunk-Systems-Overview.md",
|
|
25
28
|
"file://.kiro/steering/personal-note.md",
|
|
26
|
-
"file
|
|
27
|
-
"file://governance/Platform-Resource-Map.md",
|
|
29
|
+
"file://governance/platform-implementation-guidelines.md",
|
|
28
30
|
"file://governance/Product-Token-Governance.md",
|
|
29
|
-
"file
|
|
30
|
-
"file
|
|
31
|
-
"
|
|
32
|
-
"skill://governance/Process-Development-Workflow.md",
|
|
33
|
-
"skill://governance/Process-File-Organization.md",
|
|
34
|
-
"skill://governance/Token-Quick-Reference.md",
|
|
35
|
-
"skill://governance/platform-implementation-guidelines.md",
|
|
36
|
-
"skill://governance/Contract-System-Reference.md",
|
|
37
|
-
"skill://governance/stemma-system-principles.md",
|
|
38
|
-
"skill://governance/Test-Development-Standards.md",
|
|
39
|
-
"skill://governance/Test-Behavioral-Contract-Validation.md",
|
|
40
|
-
"skill://.kiro/steering/Spec-Feedback-Protocol.md",
|
|
41
|
-
"skill://governance/technology-stack.md",
|
|
42
|
-
"skill://governance/Product-Token-Governance.md",
|
|
43
|
-
"skill://.kiro/skills/android/edge-to-edge/SKILL.md",
|
|
31
|
+
"file://.kiro/steering/Spec-Feedback-Protocol.md",
|
|
32
|
+
"file://.kiro/steering/start-up-tasks.md",
|
|
33
|
+
"file://.kiro/steering/Task-Completion-Protocol.md",
|
|
44
34
|
"skill://.kiro/skills/android/adaptive/SKILL.md",
|
|
35
|
+
"skill://.kiro/skills/android/edge-to-edge/SKILL.md",
|
|
45
36
|
"skill://.kiro/skills/android/navigation-3/SKILL.md",
|
|
46
37
|
"skill://.kiro/skills/android/theming/styles/SKILL.md"
|
|
47
38
|
],
|
|
48
|
-
"
|
|
49
|
-
"
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
39
|
+
"tools": [
|
|
40
|
+
"*"
|
|
41
|
+
],
|
|
42
|
+
"toolsSettings": {
|
|
43
|
+
"write": {
|
|
44
|
+
"allowedPaths": [
|
|
45
|
+
".kiro/specs/**",
|
|
46
|
+
"docs/specs/**"
|
|
47
|
+
]
|
|
48
|
+
}
|
|
55
49
|
},
|
|
56
|
-
"keyboardShortcut": "ctrl+shift+d",
|
|
57
50
|
"welcomeMessage": "Hey! I'm Data, your Android platform engineer. I implement product screens in Jetpack Compose using DesignerPunk tokens and components. What are we building?"
|
|
58
51
|
}
|