@jskit-ai/agent-docs 0.1.44 → 0.1.46
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.
|
@@ -28,20 +28,7 @@ npx @jskit-ai/create-app exampleapp --target . --force --tenancy-mode <mode>
|
|
|
28
28
|
npm install
|
|
29
29
|
```
|
|
30
30
|
|
|
31
|
-
After that promotion, the overwritten app `AGENTS.md` stays deliberately small. Use
|
|
32
|
-
|
|
33
|
-
Issue sessions are executable workflow state, not prose instructions. The important durable files are:
|
|
34
|
-
|
|
35
|
-
- `issue.md` and `issue_title` for the approved GitHub issue.
|
|
36
|
-
- `plan_details.md` for the confirmed implementation details gathered before planning.
|
|
37
|
-
- `plan.md` for the approved implementation plan.
|
|
38
|
-
- `agent_decisions.md` for concise decisions and why they were made.
|
|
39
|
-
- `.jskit/APP_BLUEPRINT.md` for durable app/product/architecture memory that grows across issues.
|
|
40
|
-
- `review_passes/`, `checks/`, `ui_checks/`, and `command_log.jsonl` for review, verification, UI check, and command receipts.
|
|
41
|
-
|
|
42
|
-
The Deep UI Check steps use the saved issue classification: server-only work can be skipped with a receipt, possible UI work can be skipped only with an explicit reason, and definite UI work must run. If the User Check fails, JSKIT starts a new cycle under `cycles/cycle_###/` and cycle-scoped receipts under `steps/cycle_###/`; do not delete older cycle receipts.
|
|
43
|
-
|
|
44
|
-
Studio and other tools should read `jskit session <session_id> --json` rather than scraping those files directly. Manual agents should follow the current `jskit session <session_id> step` output and avoid recreating the old workboard workflow.
|
|
31
|
+
After that promotion, the overwritten app `AGENTS.md` stays deliberately small. Use it with the distributed JSKIT agent docs when planning or implementing app changes. The durable app memory lives in `.jskit/APP_BLUEPRINT.md` and should describe product and architecture decisions, not become an implementation task list.
|
|
45
32
|
|
|
46
33
|
After creating the real app scaffolding (the base shell, not the seed wrapper), you will need to run `npm install` to install dependencies.
|
|
47
34
|
|
package/package.json
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jskit-ai/agent-docs",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.46",
|
|
4
4
|
"description": "Distributed JSKIT agent references, prompts, guides, and generated reference maps.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
7
|
-
"DISTR_AGENT.md",
|
|
8
7
|
"guide",
|
|
9
8
|
"patterns",
|
|
10
9
|
"reference",
|
|
@@ -23,7 +22,6 @@
|
|
|
23
22
|
"keywords": [
|
|
24
23
|
"jskit",
|
|
25
24
|
"agent",
|
|
26
|
-
"docs"
|
|
27
|
-
"session"
|
|
25
|
+
"docs"
|
|
28
26
|
]
|
|
29
27
|
}
|
|
@@ -25,6 +25,7 @@ Exports
|
|
|
25
25
|
### `src/server/appBlueprint.js`
|
|
26
26
|
Exports
|
|
27
27
|
- `APP_BLUEPRINT_RELATIVE_PATH`
|
|
28
|
+
- `APP_BLUEPRINT_PROMPT_DIRECTORY`
|
|
28
29
|
- `APP_PROMPT_OVERRIDE_RELATIVE_ROOT`
|
|
29
30
|
- `extractAppBlueprintText(value = "")`
|
|
30
31
|
- `readAppBlueprint({ targetRoot = process.cwd() } = {})`
|
|
@@ -33,6 +34,11 @@ Exports
|
|
|
33
34
|
- `resolveAppBlueprintPaths(targetRoot = process.cwd())`
|
|
34
35
|
- `writeAppBlueprint({ targetRoot = process.cwd(), appBlueprint = "" } = {})`
|
|
35
36
|
Local functions
|
|
37
|
+
- `normalizeText(value)`
|
|
38
|
+
- `fileExists(filePath)`
|
|
39
|
+
- `readTextIfExists(filePath)`
|
|
40
|
+
- `writeTextFile(filePath, value)`
|
|
41
|
+
- `renderTemplate(source, values = {})`
|
|
36
42
|
- `readAppPromptTemplate(paths, templateName)`
|
|
37
43
|
|
|
38
44
|
### `src/server/cliEntrypoint.js`
|
|
@@ -670,23 +676,6 @@ Local functions
|
|
|
670
676
|
Exports
|
|
671
677
|
- `runPackageUpdateCommand(ctx = {}, { positional, options, cwd, io }, { runCommandAdd })`
|
|
672
678
|
|
|
673
|
-
### `src/server/commandHandlers/session.js`
|
|
674
|
-
Exports
|
|
675
|
-
- `createSessionCommands()`
|
|
676
|
-
Local functions
|
|
677
|
-
- `writeJson(stdout, payload)`
|
|
678
|
-
- `writeSessionText(stdout, payload)`
|
|
679
|
-
- `readStream(stream)`
|
|
680
|
-
- `resolveInputFilePath(cwd, filePath)`
|
|
681
|
-
- `resolveTextInput({ codePrefix, fileOption, inlineOptions = {}, io = {}, repairCommand, cwd, stdinOption, textOption, sessionId })`
|
|
682
|
-
- `resolveStepInputs({ inlineOptions = {}, io = {}, cwd, sessionId })`
|
|
683
|
-
- `normalizeStepOptions(inlineOptions = {})`
|
|
684
|
-
- `resolveListArchiveOption(options = {})`
|
|
685
|
-
- `runSessionStepCommand({ cwd, inlineOptions = {}, io = {}, sessionId })`
|
|
686
|
-
- `runNextSessionStep({ cwd, sessionId })`
|
|
687
|
-
- `runSkipSessionStep({ cwd, inlineOptions = {}, io = {}, sessionId })`
|
|
688
|
-
- `runDeslopSessionStep({ cwd, sessionId })`
|
|
689
|
-
|
|
690
679
|
### `src/server/commandHandlers/shared.js`
|
|
691
680
|
Exports
|
|
692
681
|
- `createCommandHandlerShared(ctx = {})`
|
|
@@ -811,337 +800,6 @@ Exports
|
|
|
811
800
|
Exports
|
|
812
801
|
- `runCli`
|
|
813
802
|
|
|
814
|
-
### `src/server/sessionRuntime.js`
|
|
815
|
-
Exports
|
|
816
|
-
- `SESSION_STATUS`
|
|
817
|
-
- `STEP_DEFINITIONS`
|
|
818
|
-
- `STEP_IDS`
|
|
819
|
-
- `STEP_PRECONDITION_NAMES`
|
|
820
|
-
- `abandonSession({ targetRoot = process.cwd(), sessionId } = {})`
|
|
821
|
-
- `advanceSessionStep({ targetRoot = process.cwd(), sessionId } = {})`
|
|
822
|
-
- `adoptDependenciesInstalled({ targetRoot = process.cwd(), sessionId, message = "" } = {})`
|
|
823
|
-
- `adoptCodexThreadId({ targetRoot = process.cwd(), sessionId, codexThreadId } = {})`
|
|
824
|
-
- `buildSessionResponse`
|
|
825
|
-
- `buildSessionErrorResponse`
|
|
826
|
-
- `createSession({ targetRoot = process.cwd(), sessionId = "", now = new Date() } = {})`
|
|
827
|
-
- `createSessionId`
|
|
828
|
-
- `extractIssueTitle(value = "")`
|
|
829
|
-
- `extractIssueText(value = "")`
|
|
830
|
-
- `inspectSession({ targetRoot = process.cwd(), sessionId } = {})`
|
|
831
|
-
- `inspectSessionDiff({ targetRoot = process.cwd(), sessionId } = {})`
|
|
832
|
-
- `inspectSessionDetails({ targetRoot = process.cwd(), sessionId } = {})`
|
|
833
|
-
- `isValidSessionId`
|
|
834
|
-
- `listSessions({ targetRoot = process.cwd(), archive = "active" } = {})`
|
|
835
|
-
- `renderTemplate`
|
|
836
|
-
- `recordDependenciesInstalled(paths, { message = "Installed Node dependencies in the session worktree.", preconditions = [] } = {})`
|
|
837
|
-
- `rewindSession({ targetRoot = process.cwd(), sessionId, stepId } = {})`
|
|
838
|
-
- `resolveSessionPaths`
|
|
839
|
-
- `runSessionStep({ targetRoot = process.cwd(), sessionId, options = {} } = {})`
|
|
840
|
-
- `runSessionStepAction({ targetRoot = process.cwd(), sessionId, action, options = {} } = {})`
|
|
841
|
-
Local functions
|
|
842
|
-
- `invalidSessionIdError(sessionId = "")`
|
|
843
|
-
- `invalidSessionIdResponse({ targetRoot, sessionId })`
|
|
844
|
-
- `existingSessionContext({ targetRoot = process.cwd(), sessionId } = {})`
|
|
845
|
-
- `withExistingSession(input, handler)`
|
|
846
|
-
- `extractMarkedText(value = "", marker = "")`
|
|
847
|
-
- `writePromptArtifact(paths, fileName, prompt)`
|
|
848
|
-
- `commandText(command, args = [])`
|
|
849
|
-
- `cycleRootPath(paths, cycle)`
|
|
850
|
-
- `commandOutputSummary(output = "")`
|
|
851
|
-
- `appendCommandLog(paths, { args = [], command, cwd = "", kind = "command", result } = {})`
|
|
852
|
-
- `runLoggedCommand(paths, kind, command, args = [], options = {})`
|
|
853
|
-
- `readWorktreePackageJson(worktree)`
|
|
854
|
-
- `packageScriptRunArgs(packageManager, scriptName)`
|
|
855
|
-
- `packageScriptCommandForWorktree(worktree, scriptName, { preferredPackageManager = "" } = {})`
|
|
856
|
-
- `sessionPackageScriptEnv(paths, scriptName)`
|
|
857
|
-
- `packageScriptRepairCommand(paths, command, args)`
|
|
858
|
-
- `packageScriptRecordName(scriptName)`
|
|
859
|
-
- `writeSessionHookRecord(paths, scriptName, message)`
|
|
860
|
-
- `runOptionalSessionPackageScript(paths, { failureCode, failureMessage, kind, preferredPackageManager = "", preconditions = [], scriptName, timeout = 1000 * 60 * 10 } = {})`
|
|
861
|
-
- `runSessionFinalizationGuard(paths, preconditions = [])`
|
|
862
|
-
- `runSessionProvisioningHook(paths, { preferredPackageManager = "", preconditions = [] } = {})`
|
|
863
|
-
- `readGithubComments(paths)`
|
|
864
|
-
- `writeGithubComments(paths, comments = {})`
|
|
865
|
-
- `commentOnIssueOnce(paths, { bodyFile, issueUrl, purpose })`
|
|
866
|
-
- `issueMetadataFromUrl(issueUrl = "")`
|
|
867
|
-
- `writeIssueMetadataFiles(paths, { issueTitle = "", issueUrl = "" } = {})`
|
|
868
|
-
- `normalizeArchiveFilter(archive = "active")`
|
|
869
|
-
- `emptySessionDetails(response)`
|
|
870
|
-
- `removeEmptyStaleWorktreeDirectory(paths)`
|
|
871
|
-
- `createWorktree(paths, _options = {}, context = {})`
|
|
872
|
-
- `recordDependencyInstallResult(paths, { message = "Installed Node dependencies in the session worktree.", preconditions = [] } = {})`
|
|
873
|
-
- `parsePackageManager(value = "")`
|
|
874
|
-
- `hasWorktreeFile(worktree, fileName)`
|
|
875
|
-
- `dependencyInstallCommandForWorktree(worktree)`
|
|
876
|
-
- `installDependencies(paths, _options = {}, context = {})`
|
|
877
|
-
- `issueDefinitionPrompt(userInput, context)`
|
|
878
|
-
- `renderIssuePrompt(paths, options = {}, context = {})`
|
|
879
|
-
- `titleFromIssue(issueText)`
|
|
880
|
-
- `createIssue(paths, _options = {}, context = {})`
|
|
881
|
-
- `submitIssue(paths, _options = {}, context = {})`
|
|
882
|
-
- `renderIssueFilePrompt(paths, context = {})`
|
|
883
|
-
- `makePlan(paths, _options = {}, context = {})`
|
|
884
|
-
- `renderPlanExecutionPrompt(paths, _options = {}, context = {})`
|
|
885
|
-
- `worktreeStatus(worktree)`
|
|
886
|
-
- `untrackedFiles(worktree)`
|
|
887
|
-
- `untrackedFileDiff(worktree, filePath)`
|
|
888
|
-
- `untrackedFilesDiff(worktree)`
|
|
889
|
-
- `removeSessionPath(paths, ...parts)`
|
|
890
|
-
- `removeSessionRootFile(paths, fileName)`
|
|
891
|
-
- `removePromptArtifact(paths, fileName)`
|
|
892
|
-
- `removeGlobalCodexResult(paths, stepId)`
|
|
893
|
-
- `removeCycleCodexResults(paths, stepId)`
|
|
894
|
-
- `removeCodexResult(paths, stepId)`
|
|
895
|
-
- `removeGithubCommentPurpose(paths, purpose)`
|
|
896
|
-
- `removeCycleDirectories(paths)`
|
|
897
|
-
- `removePlanArtifacts(paths)`
|
|
898
|
-
- `removePlanExecutionArtifacts(paths)`
|
|
899
|
-
- `targetIsAllowedRewindStep(stepId)`
|
|
900
|
-
- `deletedStepIdsForRewindTarget(stepId)`
|
|
901
|
-
- `removeStepRecordsForDeletedSteps(paths, deletedStepIds)`
|
|
902
|
-
- `cancelDeletedStepArtifacts(paths, deletedStepIds)`
|
|
903
|
-
- `commitWorktree(paths, { message, allowNoChanges = false } = {})`
|
|
904
|
-
- `uniqueChangedFileList(entries = [])`
|
|
905
|
-
- `changedFilesInWorktree(paths)`
|
|
906
|
-
- `blueprintBaselinePath(paths)`
|
|
907
|
-
- `isBlueprintRelativePath(filePath = "")`
|
|
908
|
-
- `nonBlueprintChangedFiles(files = [])`
|
|
909
|
-
- `hashWorktreeFile(paths, filePath)`
|
|
910
|
-
- `buildDirtyFileSnapshot(paths, files = [])`
|
|
911
|
-
- `writeBlueprintBaseline(paths)`
|
|
912
|
-
- `readBlueprintBaseline(paths)`
|
|
913
|
-
- `unexpectedBlueprintStepChanges(paths, changedFiles = [])`
|
|
914
|
-
- `changedFilesSinceBase(paths)`
|
|
915
|
-
- `nextReviewPassNumber(pass = "")`
|
|
916
|
-
- `readCurrentReviewPass(paths)`
|
|
917
|
-
- `writeCurrentReviewPass(paths, pass)`
|
|
918
|
-
- `resolveReviewPassForPrompt(paths)`
|
|
919
|
-
- `writeReviewPassJson(paths, pass, fileName, payload)`
|
|
920
|
-
- `currentHead(paths)`
|
|
921
|
-
- `renderReviewPrompt(paths)`
|
|
922
|
-
- `renderResolveDeslopPrompt(paths, context = {})`
|
|
923
|
-
- `acceptReviewChanges(paths, options = {}, context = {})`
|
|
924
|
-
- `runAutomatedChecks(paths, { stepId }, _options = {}, context = {})`
|
|
925
|
-
- `writeUiCheckJson(paths, fileName, payload)`
|
|
926
|
-
- `runDeepUiCheck(paths, { stepId, phase }, _options = {}, context = {})`
|
|
927
|
-
- `userCheck(paths, options = {})`
|
|
928
|
-
- `readAcceptedChangesCommit(paths)`
|
|
929
|
-
- `commitAcceptedChanges(paths, _options = {}, context = {})`
|
|
930
|
-
- `updateBlueprint(paths, _options = {}, context = {})`
|
|
931
|
-
- `readPackageJson(root)`
|
|
932
|
-
- `doctorCommandForWorktree(worktree)`
|
|
933
|
-
- `commitLinesSinceBase(paths)`
|
|
934
|
-
- `readCheckSummaries(paths)`
|
|
935
|
-
- `readUiCheckSummaries(paths)`
|
|
936
|
-
- `readReviewPassSummaries(paths)`
|
|
937
|
-
- `renderPullRequestFilePrompt(paths, context = {})`
|
|
938
|
-
- `createPullRequestFile(paths, _options = {}, context = {})`
|
|
939
|
-
- `issueNumberFromUrl(issueUrl)`
|
|
940
|
-
- `parseJsonObject(value)`
|
|
941
|
-
- `booleanOption(options = {}, ...names)`
|
|
942
|
-
- `skipStepRequested(options = {})`
|
|
943
|
-
- `skipStepReason(options = {}, stepId = "")`
|
|
944
|
-
- `writeJsonFile(filePath, payload)`
|
|
945
|
-
- `writeTextIfMissing(filePath, value)`
|
|
946
|
-
- `writeSkippedIssueDraft(paths, reason)`
|
|
947
|
-
- `writeSkippedReviewPass(paths, reason)`
|
|
948
|
-
- `writeSkippedStepArtifacts(paths, stepId, reason)`
|
|
949
|
-
- `skipCurrentStep(paths, stepId, options = {})`
|
|
950
|
-
- `readPrState(paths, prUrl)`
|
|
951
|
-
- `readCurrentBranchPrState(paths)`
|
|
952
|
-
- `prStateIsMerged(prState)`
|
|
953
|
-
- `prStateIsClosed(prState)`
|
|
954
|
-
- `currentTargetBranch(targetRoot)`
|
|
955
|
-
- `assertTargetRootCleanForBaseUpdate(paths)`
|
|
956
|
-
- `removeSessionWorktree(paths)`
|
|
957
|
-
- `writePrOutcome(paths, outcome)`
|
|
958
|
-
- `mainCheckoutSyncPath(paths)`
|
|
959
|
-
- `writeMainCheckoutSync(paths, payload = {})`
|
|
960
|
-
- `assertTargetRootCanUpdateBase(paths, branch)`
|
|
961
|
-
- `updateLocalBaseBranch(paths, baseBranch = "")`
|
|
962
|
-
- `syncMainCheckout(paths, options = {}, context = {})`
|
|
963
|
-
- `updateHelperMapBeforePr(paths)`
|
|
964
|
-
- `createPr(paths, _options = {}, context = {})`
|
|
965
|
-
- `preparePrMerge(paths, options = {}, context = {})`
|
|
966
|
-
- `finalizePr(paths, options = {}, context = {})`
|
|
967
|
-
- `finishSession(paths)`
|
|
968
|
-
- `runNamedPreconditions(paths, names = [])`
|
|
969
|
-
- `sessionStepError(paths, { code, message, repairCommand = "" } = {})`
|
|
970
|
-
- `createIssueFileAction(paths, options = {}, context = {})`
|
|
971
|
-
- `createGithubIssueAction(paths, options = {}, context = {})`
|
|
972
|
-
|
|
973
|
-
### `src/server/sessionRuntime/appReadiness.js`
|
|
974
|
-
Exports
|
|
975
|
-
- `inspectReadyJskitAppRoot(rootPath)`
|
|
976
|
-
Local functions
|
|
977
|
-
- `pathExists(filePath)`
|
|
978
|
-
- `directoryExists(filePath)`
|
|
979
|
-
|
|
980
|
-
### `src/server/sessionRuntime/constants.js`
|
|
981
|
-
Exports
|
|
982
|
-
- `PROMPT_DIRECTORY`
|
|
983
|
-
- `SESSION_ID_PATTERN`
|
|
984
|
-
- `SESSION_STATUS`
|
|
985
|
-
- `SESSION_WORKFLOW_VERSION`
|
|
986
|
-
- `DEPENDENCIES_INSTALL_RESULT_FILE`
|
|
987
|
-
- `REVIEW_PASS_LIMIT`
|
|
988
|
-
- `CYCLE_STEP_IDS`
|
|
989
|
-
- `STEP_DEFINITION_BY_ID`
|
|
990
|
-
- `STEP_DEFINITIONS`
|
|
991
|
-
- `STEP_IDS`
|
|
992
|
-
- `STEP_LABEL_BY_ID`
|
|
993
|
-
- `STEP_PRECONDITION_NAMES`
|
|
994
|
-
- `ISSUE_DEFINITION_CODEX_HANDOFF`
|
|
995
|
-
- `ISSUE_FILE_CODEX_HANDOFF`
|
|
996
|
-
- `PLAN_CODEX_HANDOFF`
|
|
997
|
-
- `PLAN_EXECUTION_CODEX_HANDOFF`
|
|
998
|
-
- `REVIEW_EXECUTION_CODEX_HANDOFF`
|
|
999
|
-
- `RESOLVE_DESLOP_CODEX_HANDOFF`
|
|
1000
|
-
- `DEEP_UI_CHECK_CODEX_HANDOFF`
|
|
1001
|
-
- `AUTOMATED_CHECK_REPAIR_CODEX_HANDOFF`
|
|
1002
|
-
- `BLUEPRINT_CODEX_HANDOFF`
|
|
1003
|
-
- `PR_FILE_CODEX_HANDOFF`
|
|
1004
|
-
- `PR_MERGE_PREP_CODEX_HANDOFF`
|
|
1005
|
-
- `JSKIT_CLI_SHELL_COMMAND`
|
|
1006
|
-
- `SESSION_STATE_RELATIVE_PATH`
|
|
1007
|
-
Local functions
|
|
1008
|
-
- `codexHandoff({ promptActionLabel = "", promptIntroText = "", promptWaitingText = "", sendPrompt = false } = {})`
|
|
1009
|
-
- `stepAutomationFor({ codex = undefined, id, kind, requiresExplicitRun = false })`
|
|
1010
|
-
- `defineStep({ buttonLabel, codex = undefined, description, id, input = INPUT_NONE, kind = "automatic", label, nextCommandTemplate = DEFAULT_NEXT_COMMAND_TEMPLATE, preconditions = [], requiresExplicitRun = false, submitOptions = {}, automation = undefined, utilityActions = [], displayGroupId = "", displayGroupLabel = "" })`
|
|
1011
|
-
|
|
1012
|
-
### `src/server/sessionRuntime/io.js`
|
|
1013
|
-
Exports
|
|
1014
|
-
- `fileExists(filePath)`
|
|
1015
|
-
- `normalizeText(value)`
|
|
1016
|
-
- `readTextIfExists(filePath)`
|
|
1017
|
-
- `readTrimmedFile(filePath)`
|
|
1018
|
-
- `runCommand(command, args = [], { cwd, env = {}, timeout = 30000 } = {})`
|
|
1019
|
-
- `runGit(targetRoot, args = [], options = {})`
|
|
1020
|
-
- `runGitInWorktree(worktree, args = [], options = {})`
|
|
1021
|
-
- `timestampForStepRecord(now = new Date())`
|
|
1022
|
-
- `writeTextFile(filePath, value)`
|
|
1023
|
-
|
|
1024
|
-
### `src/server/sessionRuntime/paths.js`
|
|
1025
|
-
Exports
|
|
1026
|
-
- `archiveSession(paths, archive)`
|
|
1027
|
-
- `createAvailableSessionId(targetRoot, now = new Date())`
|
|
1028
|
-
- `createSessionId(now = new Date())`
|
|
1029
|
-
- `isValidSessionId(sessionId = "")`
|
|
1030
|
-
- `normalizeSessionId(sessionId = "")`
|
|
1031
|
-
- `resolveExistingSessionRoot(paths)`
|
|
1032
|
-
- `resolveSessionPaths({ targetRoot, sessionId = "" } = {})`
|
|
1033
|
-
- `pathsForExistingSession(paths)`
|
|
1034
|
-
Local functions
|
|
1035
|
-
- `formatDatePart(value)`
|
|
1036
|
-
|
|
1037
|
-
### `src/server/sessionRuntime/preconditions.js`
|
|
1038
|
-
Exports
|
|
1039
|
-
- `applyPreconditions(paths, checks = [])`
|
|
1040
|
-
- `assertAcceptedChangesCommitted(paths)`
|
|
1041
|
-
- `assertActiveCycleExists(paths)`
|
|
1042
|
-
- `assertActiveCycleUserCheckPassed(paths)`
|
|
1043
|
-
- `assertUserCheckPassed(paths)`
|
|
1044
|
-
- `assertBlueprintUpdateSatisfied(paths)`
|
|
1045
|
-
- `assertDeepUiCheckSatisfied(paths)`
|
|
1046
|
-
- `assertDependenciesInstalled(paths)`
|
|
1047
|
-
- `assertPullRequestFileExists(paths)`
|
|
1048
|
-
- `assertGhAuth(targetRoot)`
|
|
1049
|
-
- `assertGitCurrentBranch(targetRoot)`
|
|
1050
|
-
- `assertGitRepository(targetRoot)`
|
|
1051
|
-
- `assertGithubOrigin(targetRoot)`
|
|
1052
|
-
- `assertIssueTextExists(paths)`
|
|
1053
|
-
- `assertIssueUrlExists(paths)`
|
|
1054
|
-
- `assertAutomatedChecksPassed(paths)`
|
|
1055
|
-
- `assertMainCheckoutSyncSatisfied(paths)`
|
|
1056
|
-
- `assertPrUrlExists(paths)`
|
|
1057
|
-
- `assertReadyJskitApp(paths)`
|
|
1058
|
-
- `assertSessionExists(paths)`
|
|
1059
|
-
- `assertTargetRootWritable(targetRoot)`
|
|
1060
|
-
- `assertWorktreeExists(paths)`
|
|
1061
|
-
- `ensureStudioGitExclude(targetRoot)`
|
|
1062
|
-
- `hasWorktree`
|
|
1063
|
-
Local functions
|
|
1064
|
-
- `jskitCommand(args = "")`
|
|
1065
|
-
- `resolveGitCommonDirectory(targetRoot)`
|
|
1066
|
-
- `pathExists(filePath)`
|
|
1067
|
-
- `assertActiveCycleStepRecord(paths, { code, id, message, stepId })`
|
|
1068
|
-
|
|
1069
|
-
### `src/server/sessionRuntime/promptRenderer.js`
|
|
1070
|
-
Exports
|
|
1071
|
-
- `readPromptTemplate(targetRoot, name)`
|
|
1072
|
-
- `renderPrompt(paths, templateName, values = {})`
|
|
1073
|
-
- `renderTemplate(source, values = {})`
|
|
1074
|
-
|
|
1075
|
-
### `src/server/sessionRuntime/responses.js`
|
|
1076
|
-
Exports
|
|
1077
|
-
- `buildSessionErrorResponse({ targetRoot = process.cwd(), sessionId = "", code, message, repairCommand = "", status = SESSION_STATUS.BLOCKED, preconditions = [], errors = undefined } = {})`
|
|
1078
|
-
- `buildSessionResponse(paths, { codex = undefined, ok = true, errors = [], preconditions = [], prompt = undefined, status = undefined, warnings = [] } = {})`
|
|
1079
|
-
- `buildStepDefinitions()`
|
|
1080
|
-
- `createError({ code, message, repairCommand = "" })`
|
|
1081
|
-
- `createPrecondition({ id, ok, message })`
|
|
1082
|
-
- `failSession(paths, { code, message, repairCommand = "", preconditions = [], status = SESSION_STATUS.BLOCKED, prompt = "", codex = undefined })`
|
|
1083
|
-
- `markCurrentStep(paths, stepId)`
|
|
1084
|
-
- `markStatus(paths, status)`
|
|
1085
|
-
- `normalizeReviewPassNumber(value = "")`
|
|
1086
|
-
- `readActiveCycle(paths)`
|
|
1087
|
-
- `readStepRecords(paths)`
|
|
1088
|
-
- `readReviewPasses(paths)`
|
|
1089
|
-
- `readSessionArtifacts(paths)`
|
|
1090
|
-
- `reviewPassDirectoryName(pass = DEFAULT_REVIEW_PASS)`
|
|
1091
|
-
- `reviewPassRoot(paths, pass)`
|
|
1092
|
-
- `writeCycleStepRecord(paths, recordName, message, { cycle = "" } = {})`
|
|
1093
|
-
- `writeStepRecord(paths, stepId, message)`
|
|
1094
|
-
Local functions
|
|
1095
|
-
- `createWarning({ code, message, repairCommand = "" })`
|
|
1096
|
-
- `issueNumberFromUrl(issueUrl = "")`
|
|
1097
|
-
- `normalizeStepId(stepId)`
|
|
1098
|
-
- `stepIndex(stepId)`
|
|
1099
|
-
- `normalizeKnownStepIds(stepIds = [])`
|
|
1100
|
-
- `stepCanExposeStoredPrompt(stepId)`
|
|
1101
|
-
- `normalizeCycleNumber(value = "")`
|
|
1102
|
-
- `cycleDirectoryName(cycle = DEFAULT_ACTIVE_CYCLE)`
|
|
1103
|
-
- `isCycleStepId(stepId = "")`
|
|
1104
|
-
- `readWorkflowVersion(paths)`
|
|
1105
|
-
- `cycleStepsRoot(paths, cycle)`
|
|
1106
|
-
- `cycleRoot(paths, cycle)`
|
|
1107
|
-
- `parseJsonFileIfExists(filePath)`
|
|
1108
|
-
- `readReviewPassNumbers(paths)`
|
|
1109
|
-
- `readReviewPassInfo(paths, pass)`
|
|
1110
|
-
- `latestReviewPass(artifacts = {})`
|
|
1111
|
-
- `latestReviewPassIsPrompted(artifacts = {})`
|
|
1112
|
-
- `readPromptFromAbsolutePath(filePath = "")`
|
|
1113
|
-
- `readReviewPromptForStep(paths, artifacts = {})`
|
|
1114
|
-
- `readPromptForStep(paths, stepId, artifacts = {})`
|
|
1115
|
-
- `readStepFileNames(stepsRoot)`
|
|
1116
|
-
- `readCompletedSteps(paths)`
|
|
1117
|
-
- `applyReviewPassCompletionOverlay(paths, completedSteps = [])`
|
|
1118
|
-
- `readCycleInfo(paths, cycle)`
|
|
1119
|
-
- `readCycles(paths, activeCycle)`
|
|
1120
|
-
- `readStructuredChecks(paths)`
|
|
1121
|
-
- `readStructuredUiChecks(paths)`
|
|
1122
|
-
- `readWorktreeStatus(paths, worktreeReady)`
|
|
1123
|
-
- `resolveNextStep(completedSteps = [])`
|
|
1124
|
-
- `cloneContractValue(value)`
|
|
1125
|
-
- `normalizeWarning(warning)`
|
|
1126
|
-
- `mergeWarnings(...warningLists)`
|
|
1127
|
-
- `publicCodexContract(codex = null)`
|
|
1128
|
-
- `stepRepeatabilityContract(stepId)`
|
|
1129
|
-
- `publicStepDefinition(step, index)`
|
|
1130
|
-
- `stepIsRetryableWhenBlocked(stepId)`
|
|
1131
|
-
- `uiCheckPromptedForStep(artifacts = {}, stepId = "")`
|
|
1132
|
-
- `skipReasonForStep(stepId, artifacts = {})`
|
|
1133
|
-
- `buildCurrentStepAction(stepId, artifacts = {})`
|
|
1134
|
-
- `rawCodexHandoff(stepId, artifacts = {})`
|
|
1135
|
-
- `buildCodexHandoff(stepId, artifacts = {})`
|
|
1136
|
-
- `stepCanExposeNextCommand(stepId, artifacts = {})`
|
|
1137
|
-
- `buildNextCommand(sessionId, stepId, artifacts = {})`
|
|
1138
|
-
- `buildStepActionCommands(sessionId, stepId, artifacts = {})`
|
|
1139
|
-
|
|
1140
|
-
### `src/server/sessionRuntime/worktrees.js`
|
|
1141
|
-
Exports
|
|
1142
|
-
- `hasWorktree(paths = {})`
|
|
1143
|
-
- `parseGitWorktreeList(output = "")`
|
|
1144
|
-
|
|
1145
803
|
### `src/server/shared/cliError.js`
|
|
1146
804
|
Exports
|
|
1147
805
|
- `createCliError(message, { showUsage = false, exitCode = 1, renderUsage = null } = {})`
|
|
@@ -15,7 +15,7 @@ Preferred execution mode:
|
|
|
15
15
|
|
|
16
16
|
## Read First
|
|
17
17
|
|
|
18
|
-
Use the current
|
|
18
|
+
Use the user request, current diff, and app-local instructions as the source of truth for the review scope.
|
|
19
19
|
|
|
20
20
|
Read these on demand:
|
|
21
21
|
|
|
@@ -24,11 +24,6 @@ Read these on demand:
|
|
|
24
24
|
- `../../guide/agent/index.md`
|
|
25
25
|
- `../../site/guide/index.md` when compressed guidance is ambiguous
|
|
26
26
|
|
|
27
|
-
Inspect app-local session files when they exist:
|
|
28
|
-
|
|
29
|
-
- `.jskit/sessions/active/<session_id>/prompt.md`
|
|
30
|
-
- `.jskit/sessions/active/<session_id>/issue.md`
|
|
31
|
-
|
|
32
27
|
## Review target
|
|
33
28
|
|
|
34
29
|
Determine whether the target is:
|
|
@@ -36,8 +31,6 @@ Determine whether the target is:
|
|
|
36
31
|
- the current chunk
|
|
37
32
|
- or the whole changeset
|
|
38
33
|
|
|
39
|
-
Use the active `jskit session` state to determine the current pass when available.
|
|
40
|
-
|
|
41
34
|
## Required passes
|
|
42
35
|
|
|
43
36
|
1. Deslop review
|
package/templates/app/AGENTS.md
CHANGED
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
# App Agent Instructions
|
|
2
2
|
|
|
3
|
-
Use JSKIT
|
|
3
|
+
Use the JSKIT agent docs and the local app scaffold as the source of truth for app work.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Recommended references:
|
|
6
6
|
|
|
7
|
-
- `jskit
|
|
8
|
-
- `jskit
|
|
9
|
-
- `jskit session <session_id>`
|
|
10
|
-
- `jskit session <session_id> step`
|
|
11
|
-
- `jskit session <session_id> step --json` for tools and UIs
|
|
7
|
+
- `node_modules/@jskit-ai/agent-docs/guide/agent/index.md`
|
|
8
|
+
- `node_modules/@jskit-ai/agent-docs/patterns/INDEX.md`
|
|
12
9
|
|
|
13
|
-
|
|
10
|
+
Keep changes scoped to the user request and verify runtime behavior with tests or explicit checks.
|