gcf-aif-ext 0.2.7 → 0.3.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 +6 -4
- package/commands/gcf.js +190 -13
- package/extension.json +1 -1
- package/hooks/pre-commit.js +34 -30
- package/injections/commit-status.md +1 -0
- package/injections/plan-context.md +3 -2
- package/lib/anchors.js +36 -34
- package/lib/audit-core.js +56 -26
- package/lib/bundle.js +275 -0
- package/lib/context.js +3 -2
- package/lib/design-check.js +580 -0
- package/lib/design.js +179 -0
- package/lib/git.js +63 -0
- package/lib/id.js +7 -15
- package/lib/index-gen.js +42 -8
- package/lib/ledger.js +92 -0
- package/lib/linter.js +14 -3
- package/lib/migrate.js +345 -0
- package/lib/playtest-list.js +1 -1
- package/lib/systems-doc.js +70 -0
- package/lib/unit-ops.js +270 -0
- package/lib/validate-card.js +29 -18
- package/lib/verdict-fs.js +102 -88
- package/package.json +1 -1
- package/profiles/game.md +68 -0
- package/profiles/glossary.md +37 -0
- package/profiles/pillars.md +2 -1
- package/profiles/unit-constraint.md +42 -0
- package/profiles/unit-entity.md +38 -0
- package/profiles/unit-mechanic.md +106 -0
- package/profiles/unit-resource.md +86 -0
- package/profiles/unit-rule.md +42 -0
- package/schemas/card.schema.json +23 -7
- package/skills/gcf-adopt/SKILL.md +1 -1
- package/skills/gcf-audit/SKILL.md +4 -3
- package/skills/gcf-card/SKILL.md +25 -16
- package/skills/gcf-debate/SKILL.md +17 -14
- package/skills/gcf-ingest/SKILL.md +39 -23
- package/skills/gcf-init/SKILL.md +3 -3
- package/skills/gcf-verdict/SKILL.md +6 -5
- package/skills/gcf-vision/SKILL.md +17 -11
- package/templates/PILLARS.md +2 -0
- package/templates/backlog.md +2 -5
- package/templates/card.md +27 -10
- package/templates/cnlp.config.json +0 -1
- package/templates/design.md +59 -0
- package/templates/game.md +24 -0
- package/templates/glossary.md +11 -0
- package/templates/system.md +1 -1
- package/profiles/card.md +0 -65
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# example-system
|
|
2
|
+
|
|
3
|
+
purpose:
|
|
4
|
+
- holds the example mechanic and the rule it rests on
|
|
5
|
+
|
|
6
|
+
## example-dash
|
|
7
|
+
|
|
8
|
+
type: mechanic
|
|
9
|
+
title: dash
|
|
10
|
+
route: soft (acceptance is the feel of the move)
|
|
11
|
+
system: [example-system]
|
|
12
|
+
milestone: TBD
|
|
13
|
+
pillars: TBD
|
|
14
|
+
depends: [example-grid]
|
|
15
|
+
source: manual
|
|
16
|
+
|
|
17
|
+
intent:
|
|
18
|
+
- the player crosses short gaps without breaking the pace of a fight
|
|
19
|
+
|
|
20
|
+
behavior:
|
|
21
|
+
- input: the player presses X
|
|
22
|
+
state: the character moves a short distance forward
|
|
23
|
+
feedback: TBD
|
|
24
|
+
|
|
25
|
+
refusal:
|
|
26
|
+
- pressing X during the cooldown does nothing
|
|
27
|
+
|
|
28
|
+
boundaries: TBD
|
|
29
|
+
|
|
30
|
+
persistence: none: a dash leaves no state behind
|
|
31
|
+
|
|
32
|
+
feel_like: like Hades, not like Celeste
|
|
33
|
+
|
|
34
|
+
feel:
|
|
35
|
+
- name: duration
|
|
36
|
+
envelope: 0.15..0.25 s
|
|
37
|
+
|
|
38
|
+
constraints:
|
|
39
|
+
- do not add a new input binding
|
|
40
|
+
|
|
41
|
+
miss_criterion: TBD
|
|
42
|
+
|
|
43
|
+
## example-grid
|
|
44
|
+
|
|
45
|
+
type: rule
|
|
46
|
+
title: example grid
|
|
47
|
+
route: hard (a structural invariant, unit-testable)
|
|
48
|
+
system: [example-system]
|
|
49
|
+
milestone: TBD
|
|
50
|
+
pillars: TBD
|
|
51
|
+
depends: none
|
|
52
|
+
source: manual
|
|
53
|
+
|
|
54
|
+
statement:
|
|
55
|
+
- grid cells per side in {4, 6, 8}
|
|
56
|
+
- the grid never scrolls
|
|
57
|
+
|
|
58
|
+
check:
|
|
59
|
+
- a unit test over the level data
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
logline: a short-session puzzle about placing tiles on a small board
|
|
2
|
+
|
|
3
|
+
platforms:
|
|
4
|
+
- web portals and mobile browsers, touch and mouse
|
|
5
|
+
|
|
6
|
+
audience:
|
|
7
|
+
- TBD
|
|
8
|
+
|
|
9
|
+
references:
|
|
10
|
+
- like a tabletop logic puzzle, not like a match-three game
|
|
11
|
+
|
|
12
|
+
scope_in:
|
|
13
|
+
- the core puzzle with one short win animation
|
|
14
|
+
|
|
15
|
+
scope_out:
|
|
16
|
+
- story, cutscenes and dialogue
|
|
17
|
+
|
|
18
|
+
milestones:
|
|
19
|
+
- name: web
|
|
20
|
+
goal: validate the core puzzle on a live audience
|
|
21
|
+
content: campaign levels = 50
|
|
22
|
+
|
|
23
|
+
- name: steam
|
|
24
|
+
goal: a long campaign once the web version proves the puzzle keeps players
|
package/templates/system.md
CHANGED
package/profiles/card.md
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: card
|
|
3
|
-
description: The CNL-P profile of a GCF feature card — the six slots a card body carries, in order.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
format: cnlp-format.md
|
|
7
|
-
|
|
8
|
-
mood: declarative
|
|
9
|
-
|
|
10
|
-
headings:
|
|
11
|
-
- none: the body is flat and the document is named by its frontmatter or its fixed path
|
|
12
|
-
|
|
13
|
-
frontmatter_fields:
|
|
14
|
-
- schema
|
|
15
|
-
- id
|
|
16
|
-
- slug
|
|
17
|
-
- status
|
|
18
|
-
- route
|
|
19
|
-
- system
|
|
20
|
-
- depends
|
|
21
|
-
- source
|
|
22
|
-
- tune_count
|
|
23
|
-
- built_at
|
|
24
|
-
- created
|
|
25
|
-
|
|
26
|
-
lexicon_exempt:
|
|
27
|
-
- none: every field of a card body is read at planning time and must stay unambiguous
|
|
28
|
-
|
|
29
|
-
sections:
|
|
30
|
-
- key: behavior
|
|
31
|
-
form: bullet-list
|
|
32
|
-
required: yes
|
|
33
|
-
note: player input -> state change -> feedback, one observable statement per line
|
|
34
|
-
|
|
35
|
-
- key: contract
|
|
36
|
-
form: bullet-list
|
|
37
|
-
required: yes
|
|
38
|
-
note: entities, components and data flows the feature adds; paths and entry points, never member lists or values
|
|
39
|
-
|
|
40
|
-
- key: feel
|
|
41
|
-
form: bullet-list
|
|
42
|
-
required: yes
|
|
43
|
-
note: a comparison line (like X, not like Y) plus envelope lines; envelopes are the only legal numbers in gcf documents
|
|
44
|
-
|
|
45
|
-
- key: interactions
|
|
46
|
-
form: bullet-list
|
|
47
|
-
required: yes
|
|
48
|
-
note: existing mechanics this feature crosses; a soft line may end with an "[until: ...]" annotation
|
|
49
|
-
|
|
50
|
-
- key: constraints
|
|
51
|
-
form: bullet-list
|
|
52
|
-
required: yes
|
|
53
|
-
note: negative constraints, one prohibition per line, checkable by an analyzer or a reviewer
|
|
54
|
-
|
|
55
|
-
- key: miss_criterion
|
|
56
|
-
form: scalar
|
|
57
|
-
required: yes
|
|
58
|
-
note: the one question the game in hand answers; the human answers it at the verdict
|
|
59
|
-
|
|
60
|
-
custom_sections:
|
|
61
|
-
- none: a card block that is not listed above is prose looking for a home
|
|
62
|
-
|
|
63
|
-
enforcement:
|
|
64
|
-
- `npx cnlp check`, over the files a `cnlp.config.json` corpus entry maps to this profile
|
|
65
|
-
- frontmatter is validated separately by `schemas/card.schema.json` in the gcf pre-commit hook
|