You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
"summary": "Single-player snake game with top-10 leaderboard",
32
-
"files": [
33
-
"game.snake.intent.ail",
34
-
"game.snake.schema.ail",
35
-
"game.snake.flow.ail",
36
-
"game.snake.contract.ail",
37
-
"game.snake.persona.ail"
38
-
]
39
-
}
40
-
```
26
+
-`version`: `x.y` matching entry file header
27
+
-`entry`: relative path to canonical intent file
41
28
42
29
## Pull Request Publishing Flow
43
30
44
31
1. Fork and create a branch.
45
-
2. Add or update a package in `registry/packages`.
46
-
3. Open a PR.
47
-
4. CI runs `scripts/validate_registry.py`.
48
-
5. Maintainers review and merge.
32
+
2. Add or update package files in `registry/packages/<feature>/`.
33
+
3. Update `registry/index.json` with package `name`, `version`, and `entry`.
34
+
4. Open a PR.
35
+
5. CI runs `scripts/validate_registry.py`.
36
+
6. Maintainers review and merge.
49
37
50
38
Merged PRs are the publishing mechanism.
51
39
40
+
## Consumption Model
41
+
42
+
Consumers fetch package `entry` from this registry, resolve related sources, and materialize files into local project `/ail` (and `/ail/mappings` when applicable) before synthesis.
43
+
52
44
## Validation Rules
53
45
54
46
CI enforces:
55
47
56
-
- package manifest required fields
57
-
- version format `x.y`
58
-
- package name and directory match
59
-
- listed files exist and end with `.ail`
60
-
- each file uses `AIL: <feature>#<facet>@<x.y>`
48
+
- index schema validity and non-empty package list
49
+
- package/index consistency (one index record per package directory)
50
+
-`entry` exists and points to `.intent`
51
+
- entry header matches `name`, `intent` facet, and `version`
52
+
- exactly one `*.intent` file per package directory
53
+
- optional `INCLUDES` targets exist and match feature/facet/version
54
+
- stale manifest files (`package.json`, `manifest.intent`) are rejected
0 commit comments