toga-ai 1.0.43 → 1.0.44

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.
@@ -1,6 +1,5 @@
1
1
  ---
2
2
  title: Compass Canada
3
- name: "Compass Canada"
4
3
  framework: "2.0"
5
4
  project: _Underscore
6
5
  client: compass-canada
@@ -1,6 +1,5 @@
1
1
  ---
2
2
  title: Compass USA
3
- name: "Compass USA"
4
3
  framework: "2.0"
5
4
  project: _Underscore
6
5
  client: compass-usa
@@ -2,4 +2,4 @@
2
2
 
3
3
  | Doc | Framework | Summary | Files |
4
4
  |-----|-----------|---------|-------|
5
- | [Elite Client Profile](profile.md) | 2.0 | Elite is a managed-services client that uses **Freshservice** as their helpdesk platform. | worker2/Worker/Elite.php, library/app/api/toga2.php |
5
+ | [Elite](profile.md) | 2.0 | Elite is a managed-services client that uses **Freshservice** as their helpdesk platform. | worker2/Worker/Elite.php, library/app/api/toga2.php |
@@ -1,6 +1,5 @@
1
1
  ---
2
- title: Elite Client Profile
3
- name: "Elite"
2
+ title: Elite
4
3
  framework: "2.0"
5
4
  project: Worker
6
5
  client: elite
@@ -3,4 +3,4 @@
3
3
  | Doc | Framework | Summary | Files |
4
4
  |-----|-----------|---------|-------|
5
5
  | [NYCDOE ServiceNow / ASN Integration](features/servicenow-integration.md) | 1.0 | The NYCDOE/ServiceNow integration mirrors DOE's ServiceNow tickets (Incidents + RITMs) into local tables, turns vendor shipment notices into NetSuite Sales Orde | worker/crons/sync/nycdoe/import_asn.php, worker/crons/sync/nycdoe/import_inc.php, worker/crons/sync/nycdoe/legacy_import_asn.php, worker/crons/sync/nycdoe/legacy_process_asn_queue.php, worker/crons/sync/nycdoe/process_tickets.php, worker/crons/sync/nycdoe/1_send_asn_to_netsuite.php, worker/crons/sync/nycdoe/2_send_serials_to_netsuite.php, worker/crons/sync/nycdoe/3_create_installation_ticket.php, worker/crons/sync/nycdoe/send_ticket_updates.php, worker/crons/sync/nycdoe/send_request_item_updates.php, worker/crons/sync/nycdoe/send_nycdoe_proof_of_delivery.php, worker/crons/sync/nycdoe/sync_nycdoe_locations.php, worker/crons/sync/nycdoe/receive_edi_purchase_orders.php, worker/crons/sync/nycdoe/send_edi_open_invoices.php, worker/crons/notifications/nycdoe/, worker/schedules/cron.worker.sync.json, worker/schedules/cron.worker.notification.json, library/app/api/nycdoe.php, library/app/api/nycdoev2.php, library/app/asnprocessor/manufacturer.php, library/app/edi.php |
6
- | [NYC DOE (New York City Department of Education)](profile.md) | 1.0 | NYC DOE (New York City Department of Education) is a TOGA client whose entire integration runs in the **1.0 worker tier** (~30 cron scripts under `worker/crons/ | |
6
+ | [New York City Department of Education](profile.md) | 1.0 | NYC DOE (New York City Department of Education) is a TOGA client whose entire integration runs in the **1.0 worker tier** (~30 cron scripts under `worker/crons/ | |
@@ -1,6 +1,5 @@
1
1
  ---
2
- title: NYC DOE (New York City Department of Education)
3
- name: "New York City Department of Education"
2
+ title: New York City Department of Education
4
3
  framework: "1.0"
5
4
  project: Worker
6
5
  client: nycdoe
@@ -3,4 +3,4 @@
3
3
  | Doc | Framework | Summary | Files |
4
4
  |-----|-----------|---------|-------|
5
5
  | [Prudential: Dell ASN units PRE/POST interceptor (legacy key + flat tracking)](features/dell-asn-units-interceptor.md) | 2.0 | After the tracking-number bridge migration, the ASN unit route was renamed (`advance-shipping-notice-units` → `advance-shipping-notice-item-units`), so the inhe | _underscore/Model/Prudential/AdvanceShippingNotice.php, dbchanges2/Client_Prudential/2026-06-10 - AsnUnitsInterceptor.sql |
6
- | [Prudential](profile.md) | 2.0 | Prudential is a TOGA client whose device-fulfillment flow is driven by **Dell** via the Dell API (`Client_Prudential.Apis.id = 2`). | |
6
+ | [Prudential Financial](profile.md) | 2.0 | Prudential is a TOGA client whose device-fulfillment flow is driven by **Dell** via the Dell API (`Client_Prudential.Apis.id = 2`). | |
@@ -1,6 +1,5 @@
1
1
  ---
2
- title: Prudential
3
- name: "Prudential Financial"
2
+ title: Prudential Financial
4
3
  framework: "2.0"
5
4
  project: _Underscore
6
5
  client: prudential
package/knowledge.js CHANGED
@@ -258,7 +258,7 @@ function cmdIndex() {
258
258
  const clientDir = path.join(clientsDir, client);
259
259
  const clientDocs = docs.filter(d => d.file.startsWith(clientDir + path.sep));
260
260
  const profileDoc = clientDocs.find(d => path.basename(d.file) === 'profile.md');
261
- const formalName = (profileDoc && profileDoc.data.name) || client;
261
+ const formalName = (profileDoc && profileDoc.data.title) || client;
262
262
  clientFormalNames[client] = formalName;
263
263
  const lines = [
264
264
  `# Client: ${formalName} \`${client}\``,
@@ -344,7 +344,6 @@ function cmdValidate() {
344
344
  const isClientDoc = d.rel.startsWith('clients/');
345
345
  if (isClientDoc) {
346
346
  if (!d.data.client || d.data.client === 'shared') { fail(`${d.rel}: client doc must set a real "client"`); ok = false; }
347
- if (path.basename(d.rel) === 'profile.md' && !d.data.name) { fail(`${d.rel}: client profile must set a formal "name" (e.g. name: "Compass USA")`); ok = false; }
348
347
  } else {
349
348
  // framework/apps doc: framework + repo must match the path
350
349
  const parts = d.rel.split('/'); // <fw>/apps/<repo>/... OR <fw>/standards/...
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "toga-ai",
3
- "version": "1.0.43",
3
+ "version": "1.0.44",
4
4
  "description": "TOGA Technology Team Claude Knowledge System — shared AI coding harness with skills, knowledge base CLI, and project installer for Claude Code.",
5
5
  "keywords": [
6
6
  "claude",
@@ -146,8 +146,8 @@ For every doc, set/refresh frontmatter: `framework`, `repo`, `project`, `client`
146
146
  `type`, `status`, `updated` (today's date), `owners`, `files`, `related`.
147
147
  Set `owners` to `["<AUTHOR_USERNAME>"]` from Step 1b — **never leave it empty**; when a doc
148
148
  already has owners, add `AUTHOR_USERNAME` if missing rather than replacing.
149
- For a client `profile.md`, set the dedicated `name:` field to the client's **formal name**
150
- (distinct from `title`, the doc title) `validate` requires it; see New-client onboarding.
149
+ For a client `profile.md`, the `title:` **is** the client's formal name (e.g. "Compass USA") —
150
+ there is no separate name field; `validate` requires `title`. See New-client onboarding.
151
151
  Add `related:` cross-links. Append new repos to `<TEAM_REPO>/knowledge/registry.json`.
152
152
 
153
153
  ## Step 6 — Validate, index, mirror back (mandatory)
@@ -366,14 +366,13 @@ any client docs:
366
366
  is used only for the folder name.
367
367
  2. **Formal name** — **ASK the developer for the client's formal name** (e.g. "Compass USA",
368
368
  "New York City Department of Education"). **Never invent it from the slug.**
369
- 3. Create `clients/<slug>/profile.md` with the formal name in the dedicated `name:` field
370
- (distinct from `title`). `validate` **requires** `name:` on every client profile — a
371
- profile missing it fails the build.
369
+ 3. Create `clients/<slug>/profile.md` using the formal name as the `title:` (the slug is only
370
+ the folder key — the profile's `title` carries the human-readable client name). `validate`
371
+ **requires** `title` on every doc — a profile missing it fails the build.
372
372
 
373
373
  ```markdown
374
374
  ---
375
- title: <Client> Profile
376
- name: "<Formal Client Name>" # formal name; the slug is only the folder
375
+ title: "<Formal Client Name>" # the client's formal name IS the title; slug is only the folder
377
376
  framework: "<1.0|2.0>"
378
377
  project: <Project>
379
378
  client: <slug>
@@ -118,9 +118,9 @@ Ask these in one message. **Present the repos/projects you already know** (read
118
118
  pick several. If they pick a repo not listed, run **New-repo onboarding** (below) for
119
119
  each new repo before continuing.
120
120
  4. **Client** — which client is this for, or "shared / internal"? **List EVERY client by its
121
- formal name** — read the `name:` field from each `knowledge/clients/<slug>/profile.md`
122
- and show the **formal name, not the slug** (fall back to a title-cased slug only if
123
- `name:` is missing). Include "shared / internal" and "a new client". Do not show only a
121
+ formal name** — read the `title:` field from each `knowledge/clients/<slug>/profile.md`
122
+ and show the **formal name, not the slug** (fall back to a title-cased slug only if the
123
+ profile is missing). Include "shared / internal" and "a new client". Do not show only a
124
124
  subset.
125
125
  5. **What are you building or changing?** (a sentence — used to pick relevant feature docs.)
126
126
 
@@ -147,7 +147,7 @@ and naturally supports multi-select.
147
147
  1. Compass Canada
148
148
  2. Compass USA
149
149
  3. Elite
150
- ... every client's FORMAL name (from clients/<slug>/profile.md `name:`), not the slug ...
150
+ ... every client's FORMAL name (from clients/<slug>/profile.md `title:`), not the slug ...
151
151
  S. shared / internal
152
152
  X. a new client
153
153
  ```