Repository navigation
Conversation
…rors its core component root (FR1)
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
AI review status for this pull request.
|
There was a problem hiding this comment.
Approval waits on an engineering owner's decision on the amended spec:AST-093 FR1, which moves a native component's views from a folder named <Name> to the folder that mirrors its core component root, and on its new verification row. An engineering owner records that decision by commenting /approve-spec <full head SHA> on this pull request; the author may do so as an engineering owner. Separately, architecture:knowledge-contracts INV18 asks an amended requirement that names a source folder to show why that layout is a contract, and FR1 does not yet: one clause saying that spec lookup routes a Swift view to its records by that folder, or moving the rule to an architecture record, would resolve it. The Swift package and native specs READMEs still describe <Name>/ folders and can be updated here or in a follow-up.
[Automated review]
| native component's views live in its language's implementation, in the | ||
| folder that mirrors its core component root (the core source directory): | ||
| `<ComponentRoot>`, which is `<Name>` when core keeps the component in its own | ||
| folder, so core's `Avatar/AvatarStatusDot` puts the Swift AvatarStatusDot | ||
| views in `Avatar/` too. Its spec is `<Name>.<language>.spec.md` in the core |
There was a problem hiding this comment.
This amended clause names a source folder (Sources/Astryx/<ComponentRoot>/), which architecture:knowledge-contracts INV18 allows in a system spec only when the record shows the layout is an intentional public contract. One clause naming what depends on it would do that: spec lookup routes a Swift view to its records by its component-root folder. Alternatively, move the folder rule to an architecture record.
There was a problem hiding this comment.
Approval waits on an engineering owner's decision on the amended spec:AST-093 FR1, which moves a native component's views from a folder named <Name> to the folder that mirrors its core component root, and on its new verification row. An engineering owner records that decision by commenting /approve-spec <full head SHA> on this pull request; the author may do so as an engineering owner. The new clause naming spec lookup as the reason the folder is part of the contract resolves the earlier architecture:knowledge-contracts INV18 concern, and no other change is required. Two optional follow-ups: FR1 could say that a member's view reaches its own records only when the file carries the member's name, and the Swift package and native specs READMEs still describe <Name>/ folders.
[Automated review]
Exact decision needed
Where a native component's views live in its language's implementation, when core keeps that component inside another component's folder. AST-093 FR1 says each native component has its own folder "named as the core component" (
Sources/Astryx/<Name>/), but core keeps AvatarStatusDot inAvatar/, and the Swift AvatarStatusDot views already sit inSources/Astryx/Avatar/beside Avatar's. An earlier owner decision approved that placement; FR1 does not yet say it.Existing authority searched
spec:AST-093FR1 (this record): names the views' folder by<Name>.architecture:knowledge-contractsDEC-15: a component's records live indocs/specs/components/<ComponentRoot>/, mirroring the component's source tree, where<ComponentRoot>is the core source directory.packages/native/apple/Sources/Astryx/Avatar/holds bothAvatarandAvatarStatusDot.Decision
A native component's views live in the folder that mirrors its core component root, the core source directory:
<ComponentRoot>, which is<Name>when core keeps the component in its own folder. Core'sAvatar/AvatarStatusDotputs the Swift AvatarStatusDot views inAvatar/. For Swift the views are inpackages/native/apple/Sources/Astryx/<ComponentRoot>/. This is the same placement rule DEC-15 sets for records. The folder is part of the contract because spec lookup (pnpm specs:for) routes a native view to its component's records by it (architecture:knowledge-contractsINV18).Rejected alternatives
Sources/Astryx/AvatarStatusDot/): splits a family core keeps together and differs from where its records live.Claim scope and non-goals
platform_ofare unchanged.<Name>/folder are aligned in a separate docs follow-up.Evidence and implementation relationship
Sources/Astryx/Avatar/. No code changes.Writing rubric results
Scope
Validation
pnpm check:knowledgegit diff --check