@cratis/pi 7.97.1 → 7.98.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.
@@ -30,5 +30,12 @@ Readability comes first. If a change for search engines or AI assistants makes a
30
30
 
31
31
  - Public pages need a canonical link, one `<h1>`, Open Graph tags, valid JSON-LD that describes visible content, a sitemap entry and a `robots.txt` that allows crawling. Add no new `HowTo` or `FAQPage` markup; keep the visible Q&A.
32
32
  - `llms.txt` is an optional index. Never claim it improves ranking. See **cratis-llm-friendly-documentation**.
33
- - Package metadata (`Description`, `PackageProjectUrl`, `PackageTags`, npm `description`, `homepage`, `keywords`) and the README opener use the same definition sentence, and the project URL points at the docs page `https://www.cratis.io/<product>/`.
33
+ - Package metadata uses `Cratis` for Authors and Company. Metadata (`Description`, `PackageProjectUrl`, `PackageTags`, npm `description`, `homepage`, `keywords`) and the README opener use the same definition sentence, and the project URL points at the docs page `https://www.cratis.io/<product>/`.
34
34
  - State only facts the repository supports: versions, licenses, limits. The claim gate in `BRAND.md`, `MESSAGING.md` and `SITE.md` still applies.
35
+
36
+ ## Facts and publication guardrails
37
+
38
+ - Each entity page has one sourced "at a glance" block: verifiable facts only, dated counts; never invent customers, user counts, benchmarks, certifications, prices or competitor comparisons.
39
+ - Adoption claims count downloads per product through entry packages only, including predecessor names for a continuation; no sub-package sums or shared-dependency double counting. Round down to a stated threshold, name the month and registries, never say "users" or "customers".
40
+ - Keep description and duplicate-title lint baselines at 0; never raise a baseline to pass. Preserve product names in rendered titles and enforce the site's `llms.txt` / `llms-small.txt` byte budgets.
41
+ - Structured data uses only public, owner-approved founder/company facts. Community member profiles are `noindex`, with no personal data or `Person` entities in markup; this overrides the public-page indexing default above. Keep shared guidance generic: no private/unannounced integration names, legal entity details or factual counts.
@@ -645,6 +645,14 @@ the intended action and the permitted alternative; it does not loosen its own co
645
645
  Supply credentials through the environment, never echo them or place them in committed files.
646
646
  A missing or disabled hook is not evidence that a protected action is safe.
647
647
 
648
+ The shipped `permissions.ask` rules (`git push`, `gh pr`) are for a person at a terminal. In
649
+ `claude -p` an `ask` rule wins over `--dangerously-skip-permissions`, and with nobody to answer,
650
+ the call is denied. A runner whose work includes pushing or opening pull requests answers those
651
+ prompts with `--permission-prompt-tool` (an MCP tool that returns an allow decision); `deny` rules
652
+ and denying hooks are settled first and still refuse. Do not drop the project settings with
653
+ `--setting-sources user` instead: on Claude Code 2.1.280 that also stops the repository's
654
+ `CLAUDE.md`, skills and hooks from loading.
655
+
648
656
  ## Method lineage
649
657
 
650
658
  | Idea | Used in | Credit |
@@ -29,5 +29,12 @@ Readability comes first. If a change for search engines or AI assistants makes a
29
29
 
30
30
  - Public pages need a canonical link, one `<h1>`, Open Graph tags, valid JSON-LD that describes visible content, a sitemap entry and a `robots.txt` that allows crawling. Add no new `HowTo` or `FAQPage` markup; keep the visible Q&A.
31
31
  - `llms.txt` is an optional index. Never claim it improves ranking. See **cratis-llm-friendly-documentation**.
32
- - Package metadata (`Description`, `PackageProjectUrl`, `PackageTags`, npm `description`, `homepage`, `keywords`) and the README opener use the same definition sentence, and the project URL points at the docs page `https://www.cratis.io/<product>/`.
32
+ - Package metadata uses `Cratis` for Authors and Company. Metadata (`Description`, `PackageProjectUrl`, `PackageTags`, npm `description`, `homepage`, `keywords`) and the README opener use the same definition sentence, and the project URL points at the docs page `https://www.cratis.io/<product>/`.
33
33
  - State only facts the repository supports: versions, licenses, limits. The claim gate in `BRAND.md`, `MESSAGING.md` and `SITE.md` still applies.
34
+
35
+ ## Facts and publication guardrails
36
+
37
+ - Each entity page has one sourced "at a glance" block: verifiable facts only, dated counts; never invent customers, user counts, benchmarks, certifications, prices or competitor comparisons.
38
+ - Adoption claims count downloads per product through entry packages only, including predecessor names for a continuation; no sub-package sums or shared-dependency double counting. Round down to a stated threshold, name the month and registries, never say "users" or "customers".
39
+ - Keep description and duplicate-title lint baselines at 0; never raise a baseline to pass. Preserve product names in rendered titles and enforce the site's `llms.txt` / `llms-small.txt` byte budgets.
40
+ - Structured data uses only public, owner-approved founder/company facts. Community member profiles are `noindex`, with no personal data or `Person` entities in markup; this overrides the public-page indexing default above. Keep shared guidance generic: no private/unannounced integration names, legal entity details or factual counts.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cratis-discoverability
3
- description: Run the pre-publish check that makes Cratis content easy to find in search and AI answers without making it harder to read - a docs page, blog post, landing page, README or package metadata (title, description, opening definition, canonical links, entity names, alt text, structured data). Use when about to publish or review content for discoverability, SEO, AEO or GEO, or when writing package descriptions and README openers. Not for page voice and structure (cratis-documentation-writing), llms.txt design (cratis-llm-friendly-documentation), distribution plans (cratis-developer-marketing) or length decisions (cratis-content-length).
3
+ description: Check Cratis content before publishing for search and AI answers without sacrificing readability. Use when reviewing discoverability, SEO, AEO or GEO; writing fact blocks or download claims; editing package/repo metadata; checking docs titles, descriptions or LLM export budgets; or reviewing founder/company JSON-LD and member profile indexing. Not for page voice and structure (cratis-documentation-writing), llms.txt design (cratis-llm-friendly-documentation), distribution plans (cratis-developer-marketing) or length decisions (cratis-content-length).
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -13,13 +13,13 @@ drop the fix and say so.
13
13
 
14
14
  ## Procedure
15
15
 
16
- 1. Name the content type: docs page, blog post, landing page, README or package metadata.
16
+ 1. Name the content type: docs page, blog post, landing page, README, package/repo metadata or member profile.
17
17
  2. Name the reader's one job and, for docs, the page type (tutorial, how-to, reference, explanation).
18
- 3. Apply the checks for that type below. Fix the draft; do not annotate it.
18
+ 3. Apply the checks for that type below, including facts, adoption claims and privacy without waiting for a separate request. Fix the draft; do not annotate it.
19
19
  4. For a built site, run the checker and fix errors; warnings are judgment calls to report.
20
20
  5. Report what was changed, what was left alone and why.
21
21
 
22
- Read `references/page-checklist.md` for the full per-type checklist and the field lengths.
22
+ Read `references/page-checklist.md` when checking a page, including docs lint baselines and LLM export budgets.
23
23
 
24
24
  ## Checks by content type
25
25
 
@@ -29,7 +29,9 @@ Read `references/page-checklist.md` for the full per-type checklist and the fiel
29
29
  definition sentence may follow the opening scenario where it reads naturally. `writing-cratis-docs`
30
30
  wins on voice and structure. Product index pages open with the definition sentence.
31
31
  Reference pages stay terse: title is the exact name plus its product, no question headings, no
32
- intro. Titles are unique across the site and name the product ("Chronicle projections").
32
+ intro. Titles are unique across the site and name the product ("Chronicle projections"). Keep
33
+ description and duplicate-title lint baselines at 0; never raise a baseline to pass. Check
34
+ rendered titles and measure `llms.txt` / `llms-small.txt` bytes against the site budgets.
33
35
  - **Blog post.** The title states the topic in the words a reader would search. The intro gives the
34
36
  conclusion in two sentences. Show the named author and date, add `lastUpdated` only for real
35
37
  changes, link the owning docs pages with `https://www.cratis.io/...`, keep `description` apart
@@ -41,7 +43,19 @@ Read `references/page-checklist.md` for the full per-type checklist and the fiel
41
43
  nouns, with no logo-only or metaphor opener. Links are absolute; link the docs page.
42
44
  - **Package metadata.** One sentence naming what the package is and which Cratis product it belongs
43
45
  to, identical to the README opener. `PackageProjectUrl` and `homepage` point at the docs page, not
44
- only at GitHub. Read `references/package-metadata.md` for the field map.
46
+ only at GitHub. Read `references/package-metadata.md` when editing package fields, GitHub About,
47
+ Docker Hub descriptions, analyzer help links, template messages or README footers. Check these
48
+ surfaces together; Authors and Company are `Cratis`.
49
+
50
+ ## Fact blocks and adoption claims
51
+
52
+ For each entity page, assemble one sourced "at a glance" block from verifiable facts, with dates
53
+ for counts. Read `references/facts-and-adoption.md` when selecting facts or calculating downloads:
54
+ identify entry packages and continuation predecessors, exclude sub-packages and overlapping
55
+ shared dependencies, round down to a stated threshold, and publish the month and registries.
56
+ Downloads are never users or customers. Omit unsupported claims instead of inventing customers,
57
+ user counts, benchmarks, certifications, prices or competitor comparisons. Keep shared guidance
58
+ generic; do not copy private integration names, legal entity details or factual counts into it.
45
59
 
46
60
  ## Names
47
61
 
@@ -53,7 +67,10 @@ Do not invent a name, URL, maturity word or claim that the references do not sta
53
67
 
54
68
  Describe only what is visible on the page, one `@graph` per page, stable `@id`s. Add no `HowTo` and
55
69
  no new `FAQPage`. Read `references/structured-data.md` for the patterns and what each page type
56
- gets. Do not name people in structured data.
70
+ gets. Use only public, owner-approved founder/company facts. Do not name other people in
71
+ structured data; never add personal data or `Person` entities for community members. Member
72
+ profiles are `noindex`; check profile and CV routes, rendered robots directives and JSON-LD.
73
+ Without approved public founder facts, reference the organization by `@id` instead.
57
74
 
58
75
  ## Checking a built site
59
76
 
@@ -0,0 +1,49 @@
1
+ # Fact blocks and adoption numbers
2
+
3
+ ## At a glance
4
+
5
+ 1. Identify the entity the page defines. Add one visible "at a glance" block per entity page,
6
+ near its definition, not repeated promotional blocks throughout the page.
7
+ 2. Select only verifiable facts: what it is, license, public status, supported capabilities and
8
+ approved public company/founder facts. Attach a source to every fact; counts need both a
9
+ source and an as-of month. A date alone is not evidence.
10
+ 3. Check the source supports the exact wording. Distinguish vendor claims from independent
11
+ measurements; repository creation is not a founding date, and contributors are not employees.
12
+ 4. Omit anything unsupported. Never invent customers, user counts, benchmarks, certifications,
13
+ prices or competitor comparisons. Do not turn an unpublished term into a public promise.
14
+
15
+ A minimal block can say `License: MIT ([license](<public source URL>))` after checking that
16
+ source. Add a download row only after the calculation below. Keep the dated calculation and
17
+ source links in the owning project's evidence, with one maintained source of truth for reused
18
+ claims. Shared corpus guidance must not copy factual counts, legal entity details or names of
19
+ private/unannounced integrations from that evidence.
20
+
21
+ ## Counting downloads
22
+
23
+ 1. Work per product, registry and era. List the user-installed entry packages or server images,
24
+ their public registry sources, observation month and counter meaning. Count entry packages
25
+ only: exclude sub-packages, add-ons and starter/meta-packages that repeat those installs.
26
+ 2. For a product continuation, include predecessor package names and explain the lineage from
27
+ public evidence. Distinct historical entry distributions may count; do not include an
28
+ unrelated product simply because it shares an organization or dependency.
29
+ 3. Record registry measurements and gaps: NuGet displayed totals may be rounded, npm totals
30
+ need complete time ranges, Docker Hub reports pulls, and Hex reports downloads. Do not
31
+ silently replace missing or incomplete measurements with estimates or claim an unmeasured
32
+ registry. These are downloads/pulls, not unique adoption.
33
+ 4. Sum the included entry counters once per product. Do not add shared dependencies to a
34
+ company headline: their downloads overlap consuming products. Avoid a cross-product total
35
+ unless its exclusions and overlap are documented; per-product claims are the default.
36
+ 5. Choose a conservative threshold below the supported total and round down, never to nearest
37
+ or up. Publish "more than <rounded threshold> downloads as of <month year>, across <named
38
+ registries>, including <public predecessor names>". For Docker, explain that pulls are part
39
+ of the combined measure. Never relabel downloads as users, customers, teams or installations.
40
+ 6. Recheck the calculation and source completeness before publishing. Keep one maintained
41
+ calculation for reuse; never change its date without refreshing the measurements. If evidence is incomplete, omit the claim and report the gap.
42
+
43
+ ## Verification
44
+
45
+ A pass has one visible block per entity page, a working source for every fact, a date on every
46
+ count, and a reproducible download calculation listing included entries, excluded dependencies,
47
+ predecessors, registry coverage and rounding threshold. Compare visible wording and JSON-LD
48
+ with those sources. No unsupported claim or private detail should remain; report missing
49
+ sources rather than filling gaps.
@@ -4,6 +4,8 @@
4
4
 
5
5
  - Field map
6
6
  - Writing the description
7
+ - Repository and distribution surfaces
8
+ - Verification
7
9
  - Pitfalls
8
10
 
9
11
  ## Field map
@@ -14,7 +16,8 @@
14
16
  | Tags | `<PackageTags>`, 5-10, `cratis` plus category terms | `keywords`, the same list |
15
17
  | Project URL | `<PackageProjectUrl>` = `https://www.cratis.io/<product>/` | `homepage`, the same |
16
18
  | Repository | `RepositoryUrl` | `repository` |
17
- | Authors | `Cratis` | `author` `Cratis` |
19
+ | Authors | `<Authors>Cratis</Authors>` (plural) | `author` `Cratis` |
20
+ | Company | `<Company>Cratis</Company>` | No standard field; do not invent one |
18
21
  | License | `PackageLicenseExpression` `MIT` | `license` `MIT` |
19
22
  | Readme | A packed README with the same opener | `README.md` |
20
23
 
@@ -28,6 +31,35 @@ One sentence: what it is, for whom, and which Cratis product it belongs to - "<w
28
31
  Cratis Chronicle, the open-source event-sourcing database"). The text equals the README opener and
29
32
  the GitHub About text. Tags are specific ("event-sourcing", "cqrs", "dotnet"); never "utilities".
30
33
 
34
+ ## Repository and distribution surfaces
35
+
36
+ - Set GitHub About's description to the same sentence, its website to the product docs page on
37
+ `https://www.cratis.io`, and topics to `cratis` plus accurate category terms.
38
+ - Docker Hub's short description defines the image and names the parent product. Its full
39
+ description explains what it runs, how to start it and where the product docs live; keep the
40
+ definition and links aligned with the README. Do not add unsupported adoption or performance claims.
41
+ - Analyzer `helpLinkUri` values link to the relevant diagnostic documentation on
42
+ `https://www.cratis.io`; keep the diagnostic path, not just the product homepage.
43
+ - Template post-action messages and README footers link to the relevant docs on
44
+ `https://www.cratis.io`. Check nested READMEs and image READMEs, not just the repository root.
45
+ - Preserve repository URLs as repository URLs. Do not rewrite schema identifiers, test fixtures,
46
+ negative examples or managed corpus copies while fixing user-facing links.
47
+
48
+ ## Verification
49
+
50
+ Inspect effective NuGet properties on a packable project, including inherited values:
51
+
52
+ ```sh
53
+ dotnet msbuild <packable.csproj> -getProperty:Authors -getProperty:Company -getProperty:Description -getProperty:PackageProjectUrl
54
+ ```
55
+
56
+ A pass shows `Cratis` for Authors and Company, a nonempty parent-product definition and the
57
+ existing product docs URL. Check npm `author`, `description`, `homepage` and `keywords` against the
58
+ field map. Request each changed www URL and require HTTP 200 at the intended destination; fix
59
+ broken paths rather than merely swapping hosts. Inspect GitHub About and Docker Hub metadata
60
+ where available. Report remote metadata that cannot be checked or needs owner approval to change;
61
+ a local README edit is not proof that a registry or repository setting changed.
62
+
31
63
  ## Pitfalls
32
64
 
33
65
  - An empty `Description`.
@@ -9,6 +9,7 @@
9
9
  - Landing pages
10
10
  - READMEs
11
11
  - Before publishing a site change
12
+ - Docs-site guardrails
12
13
 
13
14
  ## Field targets
14
15
 
@@ -29,7 +30,7 @@ Lengths are targets, counted in characters including any site suffix.
29
30
  - [ ] Description written by hand; not the title, not another page's description.
30
31
  - [ ] The `description` answers what the page is or achieves in one self-contained sentence; the first paragraph does too on landing, index, glossary and README pages.
31
32
  - [ ] Canonical names; first mention uses the full "Cratis X" form.
32
- - [ ] Facts, numbers and comparisons carry a source or a date; nothing beyond the claim gate.
33
+ - [ ] Facts, numbers and comparisons carry a source, and counts also carry a date; nothing beyond the claim gate.
33
34
  - [ ] Links have descriptive text. Root-relative inside the docs site, absolute
34
35
  `https://www.cratis.io/...` elsewhere.
35
36
  - [ ] Images have alt text (empty only when decorative) and sensible size.
@@ -86,3 +87,17 @@ Lengths are targets, counted in characters including any site suffix.
86
87
  - [ ] The content is in the raw HTML the server returns, not only rendered by JavaScript.
87
88
  - [ ] Internal links resolve; no apex `cratis.io` links.
88
89
  - [ ] A real HTTP 404 for unknown URLs; redirect stubs keep a canonical and stay out of the sitemap.
90
+
91
+ ## Docs-site guardrails
92
+
93
+ - Keep missing-description and duplicate-title lint baselines at 0. Never raise a baseline to pass;
94
+ fix authored metadata or its generator and rerun the site's lint with no new exceptions.
95
+ - Inspect rendered browser titles, not only frontmatter: retain the product name, add language
96
+ context for variants and distinguish repeated generic titles without changing page headings.
97
+ - Measure UTF-8 bytes of `llms.txt` and `llms-small.txt`, including product/nested-product exports,
98
+ against the site's configured budgets. Keep `llms.txt` an index and `llms-small.txt` curated
99
+ starting points with one-line summaries, not a full inventory. Trim duplication and curation,
100
+ not human documentation or useful code examples. Do not raise budgets to hide growth.
101
+ - Run the site's lint and enforced export-budget checks after its build; require exit 0 and
102
+ measured files within their limits. The built-site checker alone does not enforce these gates.
103
+ For export design, use **cratis-llm-friendly-documentation**.
@@ -13,8 +13,17 @@
13
13
  - Markup describes what is visible on the page, and every date is a real one.
14
14
  - Add no `HowTo`. Add no new `FAQPage`; keep the visible question and answer text. Use `QAPage` only
15
15
  for real user questions and answers.
16
- - Do not name people (`Person`, `author` name) in structured data unless the owner has approved it.
17
- Reference the organization by `@id`.
16
+ - Use only public, owner-approved founder/company facts that are visible on the page. Founder
17
+ `Person` nodes may be linked from the organization with stable `@id`s and public profile links;
18
+ do not infer roles, employment or relationships from contributor accounts. Without this approval,
19
+ reference the organization by `@id` instead of naming a person.
20
+ - Never add personal data or `Person` entities for community members, even if a profile displays
21
+ them. Do not serialize job titles, email, location, interests or CV details into JSON-LD.
22
+ Member profile and CV pages must emit `noindex`; keep them out of the sitemap. Do not apply
23
+ this policy to the community home or join page. Check rendered robots metadata or the
24
+ `X-Robots-Tag` header; blocking crawling alone does not establish `noindex`.
25
+ - Shared guidance stays generic: no private/unannounced integration names, legal entity details
26
+ or factual counts copied from source material.
18
27
  - Do not add `offers`, an address or contact data without approval (see `SITE.md`).
19
28
  - Validate with the schema.org validator or Google's Rich Results Test. Invalid markup is worse than
20
29
  none. Static sites hand-write `<script type="application/ld+json">`; Astro sites generate it in
@@ -31,6 +40,7 @@
31
40
  | Blog post | `BlogPosting` (`datePublished`, `dateModified`, `publisher`, `image`) |
32
41
  | Repository or sample code | `SoftwareSourceCode` |
33
42
  | Legal pages | `WebPage` |
43
+ | Member profiles and CV pages | no `Person` or personal structured data; `noindex` |
34
44
  | 404 and app hosts | none |
35
45
 
36
46
  ## Pattern
@@ -1,13 +1,37 @@
1
1
  {
2
2
  "skill": "cratis-discoverability",
3
- "input": "Run the pre-publish discoverability check on a new blog post, a package README and the package metadata for a Cratis library.",
3
+ "input": "Run the pre-publish discoverability check on entity facts and download claims, package/repo metadata, docs-site guardrails and founder/company or member profile structured data.",
4
4
  "fixtures": [],
5
5
  "assertions": [
6
6
  { "kind": "skill-contains", "value": "If a fix makes the page worse to read," },
7
7
  { "kind": "skill-contains", "value": "Add no `HowTo` and" },
8
- { "kind": "skill-contains", "value": "Do not name people in structured data." },
8
+ { "kind": "skill-contains", "value": "never add personal data or `Person` entities for community members." },
9
9
  { "kind": "skill-contains", "value": "Apex `https://cratis.io/` links: the docs host is `https://www.cratis.io`." },
10
10
  { "kind": "skill-contains", "value": "no logo-only or metaphor opener" },
11
- { "kind": "skill-contains", "value": "Padding to a word count: there is no minimum length" }
11
+ { "kind": "skill-contains", "value": "Padding to a word count: there is no minimum length" },
12
+ { "kind": "skill-contains", "value": "one sourced \"at a glance\" block" },
13
+ { "kind": "skill-contains", "value": "Downloads are never users or customers." },
14
+ { "kind": "skill-contains", "value": "Authors and Company are `Cratis`." },
15
+ { "kind": "skill-contains", "value": "never raise a baseline to pass." },
16
+ { "kind": "skill-contains", "value": "Member\nprofiles are `noindex`" },
17
+ { "kind": "skill-contains", "value": "Attach a source to every fact", "file": "references/facts-and-adoption.md" },
18
+ { "kind": "skill-contains", "value": "Never invent customers, user counts, benchmarks, certifications,", "file": "references/facts-and-adoption.md" },
19
+ { "kind": "skill-contains", "value": "Count entry packages\n only", "file": "references/facts-and-adoption.md" },
20
+ { "kind": "skill-contains", "value": "include predecessor package names", "file": "references/facts-and-adoption.md" },
21
+ { "kind": "skill-contains", "value": "round down, never to nearest", "file": "references/facts-and-adoption.md" },
22
+ { "kind": "skill-contains", "value": "as of <month year>, across <named\n registries>", "file": "references/facts-and-adoption.md" },
23
+ { "kind": "skill-contains", "value": "Do not add shared dependencies", "file": "references/facts-and-adoption.md" },
24
+ { "kind": "skill-contains", "value": "<Company>Cratis</Company>", "file": "references/package-metadata.md" },
25
+ { "kind": "skill-contains", "value": "https://www.cratis.io/<product>/", "file": "references/package-metadata.md" },
26
+ { "kind": "skill-contains", "value": "GitHub About", "file": "references/package-metadata.md" },
27
+ { "kind": "skill-contains", "value": "Docker Hub's short description", "file": "references/package-metadata.md" },
28
+ { "kind": "skill-contains", "value": "Analyzer `helpLinkUri`", "file": "references/package-metadata.md" },
29
+ { "kind": "skill-contains", "value": "Template post-action messages and README footers", "file": "references/package-metadata.md" },
30
+ { "kind": "skill-contains", "value": "lint baselines at 0", "file": "references/page-checklist.md" },
31
+ { "kind": "skill-contains", "value": "Measure UTF-8 bytes of `llms.txt` and `llms-small.txt`", "file": "references/page-checklist.md" },
32
+ { "kind": "skill-contains", "value": "retain the product name", "file": "references/page-checklist.md" },
33
+ { "kind": "skill-contains", "value": "public, owner-approved founder/company facts", "file": "references/structured-data.md" },
34
+ { "kind": "skill-contains", "value": "Never add personal data or `Person` entities for community members", "file": "references/structured-data.md" },
35
+ { "kind": "skill-contains", "value": "no private/unannounced integration names, legal entity details", "file": "references/structured-data.md" }
12
36
  ]
13
37
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cratis/pi",
3
- "version": "7.97.1",
3
+ "version": "7.98.0",
4
4
  "description": "Configuration-aware Cratis AI integration for Pi",
5
5
  "type": "module",
6
6
  "files": [