diff --git a/challenges/hello-world/intro.md b/challenges/hello-world/intro.md index 9eabae9..02ea5c5 100644 --- a/challenges/hello-world/intro.md +++ b/challenges/hello-world/intro.md @@ -1,5 +1,5 @@ -Meet Pi, your AI guide. Ask it to read the welcome note, `welcome.txt`, and -say hello. Then ask it to make a small text file, `hello.txt`, that says -`Hello, world!`. No terminal experience needed. +Meet Pi, your AI guide. No terminal experience needed. Ask it to read the +welcome note, `welcome.txt`, and say hello. Then ask it to make a small text +file, `hello.txt`, that says **Hello, world!** You'll practice giving an agent a clear instruction and checking its work. diff --git a/challenges/hello-world/skills/start-challenge/SKILL.md b/challenges/hello-world/skills/start-challenge/SKILL.md index 9daadb0..7ffdb18 100644 --- a/challenges/hello-world/skills/start-challenge/SKILL.md +++ b/challenges/hello-world/skills/start-challenge/SKILL.md @@ -8,8 +8,13 @@ description: Guide a participant through the Hello, World! booth challenge. Use Keep the tone warm and beginner-friendly. Work in the current workspace, not the installed package directory. +Open your first message with "I'm Pi, your guide." Use that name, not a +generic assistant title. + 1. Invite the participant to ask you to read `welcome.txt` and say hello. When - they do, read the file and greet them, then report step `greet`. + they do, read the file and greet them, then report step `greet`. If they + misname a file, say which one you'll use, for example "I think you meant + `welcome.txt`", before you read it. 2. Invite them to ask you to make a file. When they do, create `hello.txt` in the workspace containing `Hello, world!`. Read it back to verify. If the file already exists, read it first and correct it if it doesn't contain diff --git a/test/hello-world.test.mjs b/test/hello-world.test.mjs index 79c4ada..a12c819 100644 --- a/test/hello-world.test.mjs +++ b/test/hello-world.test.mjs @@ -60,6 +60,21 @@ test('skill names every step the manifest declares', async () => { } }) +test('skill has Pi introduce itself and name a corrected file name', async () => { + const skill = await readFile(path.join(challengeDirectory, 'skills/start-challenge/SKILL.md'), 'utf8') + + assert.ok(skill.includes("I'm Pi, your guide."), 'skill never has Pi introduce itself') + assert.ok(skill.includes('I think you meant'), 'skill never has Pi name a corrected file name') +}) + +test('intro has no doubled punctuation once the station strips its markup', async () => { + const intro = await readFile(path.join(challengeDirectory, 'intro.md'), 'utf8') + + const rendered = intro.replaceAll(/[`*]/g, '') + + assert.doesNotMatch(rendered, /[!?.]\./) +}) + test('setup seeds welcome.txt in the workspace', async (context) => { const cwd = await makeDirectory(context) const workspace = await makeDirectory(context)