bf8d0ffcc0
🤖 GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
156 lines
4.5 KiB
TypeScript
156 lines
4.5 KiB
TypeScript
import { describe, test, expect } from "bun:test"
|
|
import { ATLAS_SYSTEM_PROMPT } from "./default"
|
|
import { ATLAS_GPT_SYSTEM_PROMPT } from "./gpt"
|
|
import { ATLAS_GEMINI_SYSTEM_PROMPT } from "./gemini"
|
|
|
|
describe("ATLAS prompt checkbox enforcement", () => {
|
|
describe("default prompt", () => {
|
|
test("plan should NOT be marked (READ ONLY)", () => {
|
|
// given
|
|
const prompt = ATLAS_SYSTEM_PROMPT
|
|
|
|
// when / then
|
|
expect(prompt).not.toMatch(/\(READ ONLY\)/)
|
|
})
|
|
|
|
test("plan description should include EDIT for checkboxes", () => {
|
|
// given
|
|
const prompt = ATLAS_SYSTEM_PROMPT
|
|
const lowerPrompt = prompt.toLowerCase()
|
|
|
|
// when / then
|
|
expect(lowerPrompt).toMatch(/edit.*checkbox|checkbox.*edit/)
|
|
})
|
|
|
|
test("boundaries should include exception for editing .sisyphus/plans/*.md checkboxes", () => {
|
|
// given
|
|
const prompt = ATLAS_SYSTEM_PROMPT
|
|
const lowerPrompt = prompt.toLowerCase()
|
|
|
|
// when / then
|
|
expect(lowerPrompt).toMatch(/\.sisyphus\/plans\/\*\.md/)
|
|
expect(lowerPrompt).toMatch(/checkbox/)
|
|
})
|
|
|
|
test("prompt should include POST-DELEGATION RULE", () => {
|
|
// given
|
|
const prompt = ATLAS_SYSTEM_PROMPT
|
|
const lowerPrompt = prompt.toLowerCase()
|
|
|
|
// when / then
|
|
expect(lowerPrompt).toMatch(/post-delegation/)
|
|
})
|
|
|
|
test("prompt should include MUST NOT call a new task() before", () => {
|
|
// given
|
|
const prompt = ATLAS_SYSTEM_PROMPT
|
|
const lowerPrompt = prompt.toLowerCase()
|
|
|
|
// when / then
|
|
expect(lowerPrompt).toMatch(/must not.*call.*new.*task/)
|
|
})
|
|
|
|
test("default prompt should NOT reference .sisyphus/tasks/", () => {
|
|
// given
|
|
const prompt = ATLAS_SYSTEM_PROMPT
|
|
|
|
// when / then
|
|
expect(prompt).not.toMatch(/\.sisyphus\/tasks\//)
|
|
})
|
|
})
|
|
|
|
describe("GPT prompt", () => {
|
|
test("plan should NOT be marked (READ ONLY)", () => {
|
|
// given
|
|
const prompt = ATLAS_GPT_SYSTEM_PROMPT
|
|
|
|
// when / then
|
|
expect(prompt).not.toMatch(/\(READ ONLY\)/)
|
|
})
|
|
|
|
test("plan description should include EDIT for checkboxes", () => {
|
|
// given
|
|
const prompt = ATLAS_GPT_SYSTEM_PROMPT
|
|
const lowerPrompt = prompt.toLowerCase()
|
|
|
|
// when / then
|
|
expect(lowerPrompt).toMatch(/edit.*checkbox|checkbox.*edit/)
|
|
})
|
|
|
|
test("boundaries should include exception for editing .sisyphus/plans/*.md checkboxes", () => {
|
|
// given
|
|
const prompt = ATLAS_GPT_SYSTEM_PROMPT
|
|
const lowerPrompt = prompt.toLowerCase()
|
|
|
|
// when / then
|
|
expect(lowerPrompt).toMatch(/\.sisyphus\/plans\/\*\.md/)
|
|
expect(lowerPrompt).toMatch(/checkbox/)
|
|
})
|
|
|
|
test("prompt should include POST-DELEGATION RULE", () => {
|
|
// given
|
|
const prompt = ATLAS_GPT_SYSTEM_PROMPT
|
|
const lowerPrompt = prompt.toLowerCase()
|
|
|
|
// when / then
|
|
expect(lowerPrompt).toMatch(/post-delegation/)
|
|
})
|
|
|
|
test("prompt should include MUST NOT call a new task() before", () => {
|
|
// given
|
|
const prompt = ATLAS_GPT_SYSTEM_PROMPT
|
|
const lowerPrompt = prompt.toLowerCase()
|
|
|
|
// when / then
|
|
expect(lowerPrompt).toMatch(/must not.*call.*new.*task/)
|
|
})
|
|
})
|
|
|
|
describe("Gemini prompt", () => {
|
|
test("plan should NOT be marked (READ ONLY)", () => {
|
|
// given
|
|
const prompt = ATLAS_GEMINI_SYSTEM_PROMPT
|
|
|
|
// when / then
|
|
expect(prompt).not.toMatch(/\(READ ONLY\)/)
|
|
})
|
|
|
|
test("plan description should include EDIT for checkboxes", () => {
|
|
// given
|
|
const prompt = ATLAS_GEMINI_SYSTEM_PROMPT
|
|
const lowerPrompt = prompt.toLowerCase()
|
|
|
|
// when / then
|
|
expect(lowerPrompt).toMatch(/edit.*checkbox|checkbox.*edit/)
|
|
})
|
|
|
|
test("boundaries should include exception for editing .sisyphus/plans/*.md checkboxes", () => {
|
|
// given
|
|
const prompt = ATLAS_GEMINI_SYSTEM_PROMPT
|
|
const lowerPrompt = prompt.toLowerCase()
|
|
|
|
// when / then
|
|
expect(lowerPrompt).toMatch(/\.sisyphus\/plans\/\*\.md/)
|
|
expect(lowerPrompt).toMatch(/checkbox/)
|
|
})
|
|
|
|
test("prompt should include POST-DELEGATION RULE", () => {
|
|
// given
|
|
const prompt = ATLAS_GEMINI_SYSTEM_PROMPT
|
|
const lowerPrompt = prompt.toLowerCase()
|
|
|
|
// when / then
|
|
expect(lowerPrompt).toMatch(/post-delegation/)
|
|
})
|
|
|
|
test("prompt should include MUST NOT call a new task() before", () => {
|
|
// given
|
|
const prompt = ATLAS_GEMINI_SYSTEM_PROMPT
|
|
const lowerPrompt = prompt.toLowerCase()
|
|
|
|
// when / then
|
|
expect(lowerPrompt).toMatch(/must not.*call.*new.*task/)
|
|
})
|
|
})
|
|
})
|