@elevasis/sdk 1.5.5 → 1.6.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/dist/index.d.ts CHANGED
@@ -3232,7 +3232,7 @@ type Database = {
3232
3232
  }
3233
3233
  ];
3234
3234
  };
3235
- reported_issues: {
3235
+ reported_requests: {
3236
3236
  Row: {
3237
3237
  affected_page: string | null;
3238
3238
  category: string;
@@ -3251,6 +3251,7 @@ type Database = {
3251
3251
  status: string;
3252
3252
  task_id: string | null;
3253
3253
  title: string;
3254
+ type: string;
3254
3255
  updated_at: string;
3255
3256
  };
3256
3257
  Insert: {
@@ -3271,6 +3272,7 @@ type Database = {
3271
3272
  status?: string;
3272
3273
  task_id?: string | null;
3273
3274
  title: string;
3275
+ type: string;
3274
3276
  updated_at?: string;
3275
3277
  };
3276
3278
  Update: {
@@ -3291,25 +3293,26 @@ type Database = {
3291
3293
  status?: string;
3292
3294
  task_id?: string | null;
3293
3295
  title?: string;
3296
+ type?: string;
3294
3297
  updated_at?: string;
3295
3298
  };
3296
3299
  Relationships: [
3297
3300
  {
3298
- foreignKeyName: "reported_issues_organization_id_fkey";
3301
+ foreignKeyName: "reported_requests_organization_id_fkey";
3299
3302
  columns: ["organization_id"];
3300
3303
  isOneToOne: false;
3301
3304
  referencedRelation: "organizations";
3302
3305
  referencedColumns: ["id"];
3303
3306
  },
3304
3307
  {
3305
- foreignKeyName: "reported_issues_project_id_fkey";
3308
+ foreignKeyName: "reported_requests_project_id_fkey";
3306
3309
  columns: ["project_id"];
3307
3310
  isOneToOne: false;
3308
3311
  referencedRelation: "prj_projects";
3309
3312
  referencedColumns: ["id"];
3310
3313
  },
3311
3314
  {
3312
- foreignKeyName: "reported_issues_task_id_fkey";
3315
+ foreignKeyName: "reported_requests_task_id_fkey";
3313
3316
  columns: ["task_id"];
3314
3317
  isOneToOne: false;
3315
3318
  referencedRelation: "prj_tasks";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elevasis/sdk",
3
- "version": "1.5.5",
3
+ "version": "1.6.0",
4
4
  "description": "SDK for building Elevasis organization resources",
5
5
  "type": "module",
6
6
  "bin": {
@@ -2,7 +2,7 @@
2
2
 
3
3
  Auto-generated from the package reference manifests.
4
4
 
5
- Package entries indexed: 41.
5
+ Package entries indexed: 42.
6
6
 
7
7
  ## @elevasis/core / Core
8
8
 
@@ -55,6 +55,7 @@ Package entries indexed: 41.
55
55
  | Features Lead Gen | `packages/ui/src/features/README.md` | Published lead generation feature surface for downstream shells. | (not specified) |
56
56
  | Features Operations | `packages/ui/src/features/README.md` | Published operations feature surface for downstream shells. | (not specified) |
57
57
  | Features Monitoring | `packages/ui/src/features/README.md` | Published monitoring feature surface for downstream shells. | (not specified) |
58
+ | Features Monitoring Requests | `packages/ui/src/features/README.md` | Published submitted-requests list, detail, and triage surface for downstream shells. | (not specified) |
58
59
  | Features SEO | `packages/ui/src/features/README.md` | Published SEO feature surface for downstream shells. | (not specified) |
59
60
  | Features Settings | `packages/ui/src/features/README.md` | Published settings feature surface for downstream shells. | (not specified) |
60
61
 
@@ -239,6 +239,20 @@
239
239
  "referencePath": "packages/ui/src/features/README.md",
240
240
  "publishedExportPath": "./dist/features/monitoring/index.js"
241
241
  },
242
+ {
243
+ "packageName": "@elevasis/ui",
244
+ "packageDir": "packages/ui",
245
+ "subpath": "./features/monitoring/requests",
246
+ "kind": "subpath",
247
+ "title": "Features Monitoring Requests",
248
+ "description": "Published submitted-requests list, detail, and triage surface for downstream shells.",
249
+ "group": "Features",
250
+ "order": 8,
251
+ "sourcePath": "packages/ui/src/features/monitoring/requests/index.ts",
252
+ "docPath": "packages/ui/src/features/README.md",
253
+ "referencePath": "packages/ui/src/features/README.md",
254
+ "publishedExportPath": "./dist/features/monitoring/requests/index.js"
255
+ },
242
256
  {
243
257
  "packageName": "@elevasis/ui",
244
258
  "packageDir": "packages/ui",
@@ -247,7 +261,7 @@
247
261
  "title": "Features SEO",
248
262
  "description": "Published SEO feature surface for downstream shells.",
249
263
  "group": "Features",
250
- "order": 8,
264
+ "order": 9,
251
265
  "sourcePath": "packages/ui/src/features/seo/index.ts",
252
266
  "docPath": "packages/ui/src/features/README.md",
253
267
  "referencePath": "packages/ui/src/features/README.md",
@@ -261,7 +275,7 @@
261
275
  "title": "Features Settings",
262
276
  "description": "Published settings feature surface for downstream shells.",
263
277
  "group": "Features",
264
- "order": 9,
278
+ "order": 10,
265
279
  "sourcePath": "packages/ui/src/features/settings/index.ts",
266
280
  "docPath": "packages/ui/src/features/README.md",
267
281
  "referencePath": "packages/ui/src/features/README.md",
@@ -0,0 +1,11 @@
1
+ # Submit Request
2
+
3
+ **Usage:** `/submit-request [optional one-line description]`
4
+
5
+ **Goal:** File a structured request report to the Elevasis platform after agent-driven pre-analysis.
6
+
7
+ **EXECUTE:** `.claude/skills/submit-request/SKILL.md`
8
+
9
+ ## Env Requirements
10
+
11
+ - `ELEVASIS_PLATFORM_KEY` (same key used by all `elevasis-sdk` commands — no extra setup if deploy already works)
@@ -35,6 +35,58 @@ allowed-tools: Bash, Read, Write, Edit, Glob, Grep
35
35
  - `/project checklist <client> "<milestone>"` — View checklist for a milestone.
36
36
  - `/project delete <client>` — Delete project (cascades milestones, tasks, notes).
37
37
 
38
+ ## Prerequisites
39
+
40
+ **Run from the project root** (the directory containing `.elevasis`). Before issuing any other commands, run:
41
+
42
+ ```bash
43
+ pnpm elevasis-sdk doctor
44
+ ```
45
+
46
+ If `doctor` fails, **stop immediately and surface the error** — do not retry other commands. Fix the reported issue first (missing `.env`, bad API key, wrong directory, etc.), then re-run `doctor` before proceeding.
47
+
48
+ ---
49
+
50
+ ## Invocation Contract
51
+
52
+ All `elevasis-sdk` commands in this skill use the wrapper script form:
53
+
54
+ ```bash
55
+ pnpm elevasis-sdk <subcommand> [flags]
56
+ ```
57
+
58
+ This form is available from the **project root** — the directory that contains the `.elevasis` marker file. The `.elevasis` file is the project-root anchor: `elevasis-sdk` walks up from its invocation directory until it finds this file, then resolves `.env` and all relative paths from that location. After the project-root refactor, CWD within the project tree matters less — but you must still be somewhere inside the project directory tree.
59
+
60
+ The long form `pnpm -C operations exec elevasis-sdk <subcommand>` still works and is equivalent. Use the short wrapper form (`pnpm elevasis-sdk`) in all new automation and agent scripts.
61
+
62
+ **If the `.elevasis` marker is missing**, the CLI exits with:
63
+
64
+ ```
65
+ Not inside an Elevasis project. Run this command from a project directory (an Elevasis project has a .elevasis file at its root).
66
+ ```
67
+
68
+ If you see this error, confirm you are inside a project that was created from the template and has the `.elevasis` marker at its root.
69
+
70
+ ---
71
+
72
+ ## Transient Input Files (`tmp/`)
73
+
74
+ Agents that need to pass structured JSON to `request:submit` or `exec` should write the file to `<projectRoot>/tmp/` rather than to an arbitrary path. The `tmp/` directory is tracked in git (via `tmp/.gitkeep`) but its contents are gitignored, so transient files never pollute the commit history.
75
+
76
+ **Workflow:**
77
+
78
+ 1. Write the input payload to `tmp/<descriptive-name>.json` from the project root.
79
+ 2. Pass the path to the CLI command using the relative form — it resolves against the project root automatically:
80
+
81
+ ```bash
82
+ pnpm elevasis-sdk request:submit -f tmp/request-report.json --cleanup-input
83
+ pnpm elevasis-sdk exec my-workflow -f tmp/exec-payload.json --cleanup-input
84
+ ```
85
+
86
+ 3. The `--cleanup-input` flag deletes the file automatically after a successful command. On failure the file is left intact for inspection.
87
+
88
+ **Safety guard:** `--cleanup-input` only deletes files that are under `<projectRoot>/tmp/`. If the resolved path is outside `tmp/`, the CLI prints a warning to stderr and leaves the file untouched. Files passed via `--input <json>` (inline JSON, no file) are never affected.
89
+
38
90
  ---
39
91
 
40
92
  ## Orientation Mode (bare `/project` invocation)
@@ -43,10 +95,11 @@ When invoked without a subcommand, enter **project mode**: present the portfolio
43
95
 
44
96
  ### Flow
45
97
 
46
- 1. **List active work** — run:
98
+ 1. **List active work** — `--status` accepts exactly one value. Run two calls and merge the results:
47
99
 
48
100
  ```bash
49
- pnpm -C operations exec elevasis-sdk project:list --status active,blocked --format brief
101
+ pnpm elevasis-sdk project:list --status active --pretty
102
+ pnpm elevasis-sdk project:list --status blocked --pretty
50
103
  ```
51
104
 
52
105
  Show a compact table: client, status, last-touched.
@@ -154,13 +207,16 @@ No `--prod` flag is needed — the template targets production by default via `E
154
207
 
155
208
  ### CLI Invocation
156
209
 
157
- All project operations go through the `elevasis-sdk` CLI installed in `operations/`. Run every
158
- command from the template project root using `-C operations`:
210
+ All project operations go through the `elevasis-sdk` CLI. Use the wrapper script form from the
211
+ project root:
159
212
 
160
213
  ```bash
161
- pnpm -C operations exec elevasis-sdk project:<command> [args]
214
+ pnpm elevasis-sdk project:<command> [args]
162
215
  ```
163
216
 
217
+ The long form `pnpm -C operations exec elevasis-sdk project:<command> [args]` is equivalent and
218
+ still works — use it if the wrapper script is not yet available in an older project.
219
+
164
220
  Organization scoping is handled server-side via `ELEVASIS_PLATFORM_KEY`. No org header or
165
221
  `--org` flag is required.
166
222
 
@@ -239,7 +295,7 @@ To clear a checklist: `--checklist '[]'`.
239
295
  For a plain project table without resume context or next-action suggestions (use the bare `/project` orientation mode above when the user wants the full hub experience):
240
296
 
241
297
  ```bash
242
- pnpm -C operations exec elevasis-sdk project:list --kind client_engagement --pretty
298
+ pnpm elevasis-sdk project:list --kind client_engagement --pretty
243
299
  ```
244
300
 
245
301
  Present as:
@@ -261,7 +317,7 @@ For progress detail (milestones/tasks), follow up with `project:milestone:list`
261
317
  Wraps `project:work` for fuzzy-matched resume. Used by intent-detection "resume" classification.
262
318
 
263
319
  ```bash
264
- pnpm -C operations exec elevasis-sdk project:work <query> --pretty
320
+ pnpm elevasis-sdk project:work <query> --pretty
265
321
  ```
266
322
 
267
323
  Prints the matched project/task brief with current `resume_context`. If multiple matches, show top 3 and ask which.
@@ -274,16 +330,16 @@ If client specified, show full detail for that project. If not, show all.
274
330
 
275
331
  ```bash
276
332
  # Get project details
277
- pnpm -C operations exec elevasis-sdk project:get <project-id>
333
+ pnpm elevasis-sdk project:get <project-id>
278
334
 
279
335
  # Milestones (ordered by sequence)
280
- pnpm -C operations exec elevasis-sdk project:milestone:list --project <project-id> --pretty
336
+ pnpm elevasis-sdk project:milestone:list --project <project-id> --pretty
281
337
 
282
338
  # Tasks (grouped by milestone)
283
- pnpm -C operations exec elevasis-sdk project:task:list --project <project-id> --pretty
339
+ pnpm elevasis-sdk project:task:list --project <project-id> --pretty
284
340
 
285
341
  # Recent notes
286
- pnpm -C operations exec elevasis-sdk project:note:list --project <project-id> --pretty
342
+ pnpm elevasis-sdk project:note:list --project <project-id> --pretty
287
343
  ```
288
344
 
289
345
  Present as:
@@ -431,21 +487,21 @@ Create everything in sequence using the CLI:
431
487
 
432
488
  ```bash
433
489
  # 1. Create project
434
- pnpm -C operations exec elevasis-sdk project:create \
490
+ pnpm elevasis-sdk project:create \
435
491
  --name "<name>" \
436
492
  --kind client_engagement \
437
493
  --status active \
438
494
  --description "<desc>"
439
495
 
440
496
  # 2. Create milestones
441
- pnpm -C operations exec elevasis-sdk project:milestone:create \
497
+ pnpm elevasis-sdk project:milestone:create \
442
498
  --project <project-id> \
443
499
  --name "<milestone-name>" \
444
500
  --status upcoming \
445
501
  --due-date <date>
446
502
 
447
503
  # 3. Create kickoff note (if provided)
448
- pnpm -C operations exec elevasis-sdk project:note:create \
504
+ pnpm elevasis-sdk project:note:create \
449
505
  --project <project-id> \
450
506
  --content "<note-content>" \
451
507
  --type call_note
@@ -454,7 +510,7 @@ pnpm -C operations exec elevasis-sdk project:note:create \
454
510
  If `--company` or `--deal` linking was confirmed, use `project:update` after creation:
455
511
 
456
512
  ```bash
457
- pnpm -C operations exec elevasis-sdk project:update <project-id> --description "<updated with link info>"
513
+ pnpm elevasis-sdk project:update <project-id> --description "<updated with link info>"
458
514
  ```
459
515
 
460
516
  (Note: company/deal linking fields are set via the API. If the CLI `project:update` command
@@ -498,7 +554,7 @@ Next: /project status acme
498
554
  - `--kind <kind>` (default: `client_engagement`)
499
555
 
500
556
  ```bash
501
- pnpm -C operations exec elevasis-sdk project:create \
557
+ pnpm elevasis-sdk project:create \
502
558
  --name "<name>" \
503
559
  --kind client_engagement \
504
560
  --status active \
@@ -514,7 +570,7 @@ pnpm -C operations exec elevasis-sdk project:create \
514
570
  First resolve the client (see Client Inference below), then:
515
571
 
516
572
  ```bash
517
- pnpm -C operations exec elevasis-sdk project:update <project-id> --status <status>
573
+ pnpm elevasis-sdk project:update <project-id> --status <status>
518
574
  ```
519
575
 
520
576
  ### `milestone add <client> "<name>" [options]` — Add Milestone
@@ -526,7 +582,7 @@ pnpm -C operations exec elevasis-sdk project:update <project-id> --status <statu
526
582
  - `--description "<text>"`
527
583
 
528
584
  ```bash
529
- pnpm -C operations exec elevasis-sdk project:milestone:create \
585
+ pnpm elevasis-sdk project:milestone:create \
530
586
  --project <project-id> \
531
587
  --name "<name>" \
532
588
  --status upcoming \
@@ -540,13 +596,13 @@ Resolve milestone by name (see Client Inference for project resolution, then use
540
596
 
541
597
  ```bash
542
598
  # List milestones to find ID
543
- pnpm -C operations exec elevasis-sdk project:milestone:list --project <project-id>
599
+ pnpm elevasis-sdk project:milestone:list --project <project-id>
544
600
 
545
601
  # Update status
546
- pnpm -C operations exec elevasis-sdk project:milestone:update <milestone-id> --status completed
602
+ pnpm elevasis-sdk project:milestone:update <milestone-id> --status completed
547
603
 
548
604
  # Update checklist (full replace)
549
- pnpm -C operations exec elevasis-sdk project:milestone:update <milestone-id> \
605
+ pnpm elevasis-sdk project:milestone:update <milestone-id> \
550
606
  --checklist '[{"id":"uuid","label":"Item label","completed":false}]'
551
607
  ```
552
608
 
@@ -606,10 +662,10 @@ Onboarding & Scope — Checklist (2/3 complete)
606
662
 
607
663
  ```bash
608
664
  # Resolve milestone ID first if --milestone provided
609
- pnpm -C operations exec elevasis-sdk project:milestone:list --project <project-id>
665
+ pnpm elevasis-sdk project:milestone:list --project <project-id>
610
666
 
611
667
  # Create task
612
- pnpm -C operations exec elevasis-sdk project:task:create \
668
+ pnpm elevasis-sdk project:task:create \
613
669
  --project <project-id> \
614
670
  --title "<name>" \
615
671
  --status planned \
@@ -617,7 +673,7 @@ pnpm -C operations exec elevasis-sdk project:task:create \
617
673
  --milestone <milestone-id>
618
674
 
619
675
  # Create task with initial checklist
620
- pnpm -C operations exec elevasis-sdk project:task:create \
676
+ pnpm elevasis-sdk project:task:create \
621
677
  --project <project-id> \
622
678
  --title "<name>" \
623
679
  --checklist '[{"id":"1","label":"Step one","completed":false}]'
@@ -629,17 +685,17 @@ Resolve task by name within the project using `project:task:list`, then update b
629
685
 
630
686
  ```bash
631
687
  # Find the task ID
632
- pnpm -C operations exec elevasis-sdk project:task:list --project <project-id>
688
+ pnpm elevasis-sdk project:task:list --project <project-id>
633
689
 
634
690
  # Update status (positional <id> comes first, then flags)
635
- pnpm -C operations exec elevasis-sdk project:task:update <task-id> --status <status>
691
+ pnpm elevasis-sdk project:task:update <task-id> --status <status>
636
692
 
637
693
  # Update checklist (full replace)
638
- pnpm -C operations exec elevasis-sdk project:task:update <task-id> \
694
+ pnpm elevasis-sdk project:task:update <task-id> \
639
695
  --checklist '[{"id":"uuid","label":"Step","completed":false}]'
640
696
 
641
697
  # Clear checklist
642
- pnpm -C operations exec elevasis-sdk project:task:update <task-id> --checklist '[]'
698
+ pnpm elevasis-sdk project:task:update <task-id> --checklist '[]'
643
699
  ```
644
700
 
645
701
  **Options:** `--status`, `--title`, `--milestone`, `--description`, `--checklist <json>`
@@ -663,13 +719,13 @@ If status changes to `approved`, the API auto-sets `completed_at`.
663
719
  - `--milestone <milestone-id>` — attach to a milestone (UUID)
664
720
 
665
721
  ```bash
666
- pnpm -C operations exec elevasis-sdk project:note:create \
722
+ pnpm elevasis-sdk project:note:create \
667
723
  --project <project-id> \
668
724
  --content "<content>" \
669
725
  --type <type>
670
726
 
671
727
  # Attach to a task
672
- pnpm -C operations exec elevasis-sdk project:note:create \
728
+ pnpm elevasis-sdk project:note:create \
673
729
  --project <project-id> \
674
730
  --content "<content>" \
675
731
  --type agent_learning \
@@ -679,7 +735,7 @@ pnpm -C operations exec elevasis-sdk project:note:create \
679
735
  ### `notes <client>` — List Notes
680
736
 
681
737
  ```bash
682
- pnpm -C operations exec elevasis-sdk project:note:list --project <project-id> --pretty
738
+ pnpm elevasis-sdk project:note:list --project <project-id> --pretty
683
739
  ```
684
740
 
685
741
  ### `delete <client>` — Delete Project
@@ -688,7 +744,7 @@ pnpm -C operations exec elevasis-sdk project:note:list --project <project-id> --
688
744
  note count) using the list commands, then ask for confirmation.
689
745
 
690
746
  ```bash
691
- pnpm -C operations exec elevasis-sdk project:delete <project-id>
747
+ pnpm elevasis-sdk project:delete <project-id>
692
748
  ```
693
749
 
694
750
  Cascade deletes all milestones, tasks, and notes.
@@ -730,11 +786,12 @@ When in doubt and no project context is resolvable, global auto-memory is the sa
730
786
  Before writing a note, the agent resolves which project (and optionally task) to attach it to:
731
787
 
732
788
  1. **Explicit in session** — a project/task UUID was mentioned or returned by a recent `project:work <id>` or `project:task:*` invocation in this session. Use it directly.
733
- 2. **Implicit from task list** — if step 1 yields nothing, run:
789
+ 2. **Implicit from task list** — if step 1 yields nothing, run (`--status` accepts one value; run both calls and merge):
734
790
 
735
791
  ```bash
736
- pnpm -C operations exec elevasis-sdk project:list --status active,blocked --format brief
737
- pnpm -C operations exec elevasis-sdk project:task:list --project <top-project-id> --status in_progress
792
+ pnpm elevasis-sdk project:list --status active --pretty
793
+ pnpm elevasis-sdk project:list --status blocked --pretty
794
+ pnpm elevasis-sdk project:task:list --project <top-project-id> --status in_progress
738
795
  ```
739
796
 
740
797
  Use the most-recently-touched project's in-progress task if there is exactly one. If multiple in-progress tasks exist, prefer the one that most closely matches the current conversation topic.
@@ -754,7 +811,7 @@ When the agent recognizes a project-scoped learning (an API quirk, an undocument
754
811
  3. Write the note:
755
812
 
756
813
  ```bash
757
- pnpm -C operations exec elevasis-sdk project:note:create \
814
+ pnpm elevasis-sdk project:note:create \
758
815
  --project <project-id> \
759
816
  --type agent_learning \
760
817
  --task <task-id> \
@@ -792,7 +849,7 @@ When the user or agent says any of the following in the context of a project tas
792
849
  Resolve the active task from session context (see Project-Scope Resolution), confirm once ("Mark `<task name>` as completed?"), then fire:
793
850
 
794
851
  ```bash
795
- pnpm -C operations exec elevasis-sdk project:task:update <task-id> --status completed
852
+ pnpm elevasis-sdk project:task:update <task-id> --status completed
796
853
  ```
797
854
 
798
855
  If no task resolves, ask the user which task to complete rather than silently skipping.
@@ -817,7 +874,7 @@ Resolve which project the user means using these rules (in priority order):
817
874
  1. **Exact ID** — if the argument looks like a UUID, use it directly with `project:get`
818
875
  2. **Name match** — list projects filtered by `client_engagement` kind, then match by name:
819
876
  ```bash
820
- pnpm -C operations exec elevasis-sdk project:list --kind client_engagement
877
+ pnpm elevasis-sdk project:list --kind client_engagement
821
878
  ```
822
879
  Filter results by partial name match against the user's input (case-insensitive).
823
880
  3. **Single active project** — if only one non-completed `client_engagement` project exists,
@@ -862,7 +919,7 @@ For creating a standard milestone set, run `project:milestone:create` in sequenc
862
919
 
863
920
  ```bash
864
921
  for name in "Discovery" "Implementation" "Testing" "Launch"; do
865
- pnpm -C operations exec elevasis-sdk project:milestone:create \
922
+ pnpm elevasis-sdk project:milestone:create \
866
923
  --project <project-id> \
867
924
  --name "$name" \
868
925
  --status upcoming
@@ -1,13 +1,13 @@
1
1
  ---
2
- name: submit-issue
3
- description: Submit a structured issue report to the Elevasis platform via CLI — enforces pre-analysis before posting
2
+ name: submit-request
3
+ description: Submit a structured request report to the Elevasis platform via CLI — enforces pre-analysis before posting
4
4
  ---
5
5
 
6
- # Submit Issue
6
+ # Submit Request
7
7
 
8
- Submit a structured issue report to the Elevasis platform. The agent performs a six-phase analysis before posting so that every submitted issue includes meaningful context, not just a one-liner.
8
+ Submit a structured request report to the Elevasis platform. The agent performs a six-phase analysis before posting so that every submitted request includes meaningful context, not just a one-liner.
9
9
 
10
- **Usage:** `/submit-issue [optional description]`
10
+ **Usage:** `/submit-request [optional description]`
11
11
 
12
12
  If a description is provided, it is the primary signal for Phase 1. Otherwise the agent analyzes recent conversation context plus any active error context.
13
13
 
@@ -31,7 +31,7 @@ Gather available context:
31
31
 
32
32
  ### Phase 2: Identify Source
33
33
 
34
- Pinpoint where the issue originates:
34
+ Pinpoint where the request originates:
35
35
 
36
36
  - File paths (if a code or config file is involved)
37
37
  - Workflow or agent resource IDs (if a platform execution failed)
@@ -42,18 +42,27 @@ Record these for the `evidence` and `affected_page` fields.
42
42
 
43
43
  ### Phase 3: Gather Errors
44
44
 
45
- Extract concrete error signals:
45
+ Extract concrete error signals (if applicable):
46
46
 
47
47
  - Full error messages and stack traces (truncated to the relevant portion)
48
48
  - HTTP status codes and response bodies
49
49
  - Log lines with timestamps if available
50
50
  - Screenshots or screenshot file references if the user provided them
51
51
 
52
- These go into the `evidence` object.
52
+ These go into the `evidence` object. For feature requests or questions, this phase may produce an empty `evidence` object — that is expected.
53
53
 
54
- ### Phase 4: Classify Severity and Category
54
+ ### Phase 4: Select Type and Classify Severity and Category
55
55
 
56
- Select exactly one value for each:
56
+ Select exactly one value for **type first**, then **severity**, then **category**:
57
+
58
+ **Type:**
59
+
60
+ | Value | When to use |
61
+ | ---------- | -------------------------------------------------- |
62
+ | `bug` | Something is broken or behaving incorrectly |
63
+ | `feature` | A new capability or enhancement request |
64
+ | `question` | Asking for clarification, guidance, or explanation |
65
+ | `other` | Doesn't fit the above |
57
66
 
58
67
  **Severity:**
59
68
 
@@ -65,14 +74,18 @@ Select exactly one value for each:
65
74
 
66
75
  **Category:**
67
76
 
68
- | Value | When to use |
69
- | -------------------- | ------------------------------------------------------ |
70
- | `ui_bug` | Frontend rendering or interaction problem |
71
- | `data_inconsistency` | DB records, API responses, or UI state don't match |
72
- | `performance` | Slow load, timeout, high resource usage |
73
- | `error_pattern` | Recurring or systematic error across executions |
74
- | `configuration` | Misconfigured resource, credential, env var, or policy |
75
- | `other` | Doesn't fit above |
77
+ | Value | When to use |
78
+ | --------------------- | ------------------------------------------------------ |
79
+ | `ui_bug` | Frontend rendering or interaction problem |
80
+ | `data_inconsistency` | DB records, API responses, or UI state don't match |
81
+ | `performance` | Slow load, timeout, high resource usage |
82
+ | `error_pattern` | Recurring or systematic error across executions |
83
+ | `configuration` | Misconfigured resource, credential, env var, or policy |
84
+ | `feature_request` | New feature or enhancement being requested |
85
+ | `api_design` | Feedback on API contract, naming, or behavior |
86
+ | `documentation` | Missing, incorrect, or unclear documentation |
87
+ | `integration_request` | Request for a new integration or adapter |
88
+ | `other` | Doesn't fit above |
76
89
 
77
90
  ### Phase 5: Build Structured Report
78
91
 
@@ -82,6 +95,7 @@ Assemble the report body from phases 1–4:
82
95
  {
83
96
  "title": "One-line summary — specific, not vague",
84
97
  "description": "What happened. What was expected. Steps to reproduce if applicable.",
98
+ "type": "<bug|feature|question|other>",
85
99
  "severity": "<critical|warning|info>",
86
100
  "category": "<category value>",
87
101
  "affected_page": "<route or page path, omit if not a UI issue>",
@@ -99,7 +113,7 @@ Assemble the report body from phases 1–4:
99
113
  }
100
114
  ```
101
115
 
102
- Omit any field that has nothing meaningful to record. `project_id` and `task_id` are optional UUID fields — include them only if the issue is clearly scoped to a specific project or task visible in context.
116
+ Omit any field that has nothing meaningful to record. `project_id` and `task_id` are optional UUID fields — include them only if the request is clearly scoped to a specific project or task visible in context.
103
117
 
104
118
  Do NOT include `source` or `organization_id` — the server sets both automatically.
105
119
 
@@ -108,9 +122,10 @@ Do NOT include `source` or `organization_id` — the server sets both automatica
108
122
  Unless the command was invoked with `--auto`, present the assembled report to the user before submitting:
109
123
 
110
124
  ```
111
- Issue Report (ready to submit)
125
+ Request Report (ready to submit)
112
126
  ================================
113
127
  Title: <title>
128
+ Type: <type>
114
129
  Severity: <severity>
115
130
  Category: <category>
116
131
  Page: <affected_page or "—">
@@ -137,20 +152,20 @@ Once confirmed (or `--auto`), write the assembled JSON body to a temp file then
137
152
 
138
153
  ```bash
139
154
  # Write the report body to a temp file
140
- # (Use the Write tool to create issue-report.json at the project root)
155
+ # (Use the Write tool to create request-report.json at the project root)
141
156
 
142
- pnpm exec elevasis-sdk issue:submit --input-file ./issue-report.json --pretty
157
+ pnpm exec elevasis-sdk request:submit --input-file ./request-report.json --pretty
143
158
  ```
144
159
 
145
160
  Delete the temp file after submission succeeds or fails.
146
161
 
147
162
  ## Report Back
148
163
 
149
- On success, the CLI prints the issue ID. Surface it to the user:
164
+ On success, the CLI prints the request ID. Surface it to the user:
150
165
 
151
166
  ```
152
167
  Submitted — id: <uuid>
153
- Track it in Command Center > Issues.
168
+ Track it in Command Center > Requests.
154
169
  ```
155
170
 
156
171
  ## Troubleshooting
@@ -159,7 +174,7 @@ Track it in Command Center > Issues.
159
174
  | ------------------------------- | ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
160
175
  | `ELEVASIS_PLATFORM_KEY` missing | Key not set in root `.env` | Add `ELEVASIS_PLATFORM_KEY=sk_...` to `.env`. Provision from Command Center > Settings > API Keys. |
161
176
  | `401 Unauthorized` | Key is malformed or revoked | Verify the key starts with `sk_` and is 67 chars. Re-provision if needed. |
162
- | `403 Forbidden` | Key's org lacks access to issue reporting | Contact the platform operator to verify the key's org permissions. |
163
- | `Invalid issue body` | Report failed CLI-side Zod validation before the request was sent | Read the field errors printed by the CLI. Common causes: missing `title`/`description`, invalid enum. |
177
+ | `403 Forbidden` | Key's org lacks access to request reporting | Contact the platform operator to verify the key's org permissions. |
178
+ | `Invalid request body` | Report failed CLI-side Zod validation before the request was sent | Read the field errors printed by the CLI. Common causes: missing `title`/`description`/`type`, invalid enum. |
164
179
  | `400 Bad Request` | Body passed CLI validation but failed server-side validation | Read the response body for the specific field error. |
165
180
  | Connection refused | API server unreachable | Default target is `https://api.elevasis.io` — check network. For local dev, set `ELEVASIS_API_URL` in `.env`. |
@@ -1,4 +1,4 @@
1
- <!-- Auto-generated on 2026-04-19T10:47:49.477Z by scripts/monorepo/generate-scaffold-contracts.js -->
1
+ <!-- Auto-generated on 2026-04-20T07:18:04.491Z by scripts/monorepo/generate-scaffold-contracts.js -->
2
2
  ---
3
3
  title: Reference Contracts
4
4
  description: Auto-generated TypeScript contracts for SDK consumers. Do not edit manually.
@@ -25,7 +25,7 @@ Feature IDs defined in `DEFAULT_ORGANIZATION_MODEL.features` (`packages/core/src
25
25
 
26
26
  ```typescript
27
27
  // FeatureSchema: { id, label, enabled, color?, icon?, entityIds, surfaceIds, resourceIds, capabilityIds }
28
- type DefaultFeatureId =
28
+ type DefaultFeatureId = 'submitted-requests'
29
29
  ```
30
30
 
31
31
  These are the built-in feature IDs. The `featureId` field on a `FeatureModule` manifest must match the `id` of a feature in the organization model to enable access-flag gating.
@@ -1,11 +0,0 @@
1
- # Submit Issue
2
-
3
- **Usage:** `/submit-issue [optional one-line description]`
4
-
5
- **Goal:** File a structured issue report to the Elevasis platform after agent-driven pre-analysis.
6
-
7
- **EXECUTE:** `.claude/skills/submit-issue/SKILL.md`
8
-
9
- ## Env Requirements
10
-
11
- - `ELEVASIS_PLATFORM_KEY` (same key used by all `elevasis-sdk` commands — no extra setup if deploy already works)