agentsclimarketplace

Speak core workflow a

Skill jeremylongshore/claude-code-plugins-plus-skills/plugins/saas-packs/speak-pack/skills/speak-core-workflow-a

'Execute Speak primary workflow: AI Conversation Practice with real-time feedback.From its SKILL.md

Install
npx -y skills add jeremylongshore/claude-code-plugins-plus-skills --skill speak-core-workflow-a

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

What its file declares

Copied from the file, not written here

The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

6.0 KB, ~1.3k tokens by cl100k_base, as published. Nobody here has run it

Speak Core Workflow A: AI Conversation Practice

Overview

Primary workflow for Speak: AI-powered conversation practice with real-time pronunciation feedback and adaptive tutoring. Speak uses GPT-4o for conversation generation and OpenAI's Realtime API for speech processing, delivering sub-second response times.

Prerequisites

  • Completed speak-install-auth setup
  • Valid API credentials configured
  • Audio handling capabilities (microphone or pre-recorded files)

Instructions

Step 1: Start a Conversation Session

import { SpeakClient } from '@speak/language-sdk';

const client = new SpeakClient({
  apiKey: process.env.SPEAK_API_KEY!,
  appId: process.env.SPEAK_APP_ID!,
  language: 'es',
});

// Start a restaurant ordering scenario in Spanish
const session = await client.startConversation({
  scenario: 'ordering-food',
  language: 'es',
  level: 'intermediate',
  nativeLanguage: 'en',
  maxTurns: 10,
  feedbackDetail: 'phoneme', // 'word' or 'phoneme'
});

console.log('Session started:', session.id);
console.log('AI Tutor:', session.firstPrompt.text);
// "Bienvenido al restaurante. Soy tu camarero. Que le gustaria ordenar?"

Step 2: Send Student Responses

// Submit audio for pronunciation scoring
const turn1 = await client.sendTurn(session.id, {
  audioPath: './recordings/student-response-1.wav',
});

console.log('Tutor:', turn1.tutorText);
console.log('Pronunciation:', turn1.pronunciationScore); // 0-100
console.log('Grammar:', turn1.corrections);
// [{original: "yo quiero", suggestion: "quisiera", note: "More polite form for ordering"}]
console.log('Vocabulary:', turn1.vocabularyNotes);
// ["camarero = waiter", "ordenar = to order"]

// Or submit text (skips pronunciation scoring)
const turn2 = await client.sendTurn(session.id, {
  text: 'Quisiera una ensalada y un vaso de agua, por favor.',
});

Step 3: Conversation Loop with Progress Tracking

async function runConversationLesson(
  client: SpeakClient,
  scenario: string,
  language: string,
  level: string,
) {
  const session = await client.startConversation({
    scenario, language, level, nativeLanguage: 'en',
  });

  const turns: TurnResult[] = [];
  let isComplete = false;

  while (!isComplete && turns.length < 10) {
    // Display tutor prompt
    const prompt = turns.length === 0
      ? session.firstPrompt.text
      : turns[turns.length - 1].tutorText;
    console.log(`\nTutor: ${prompt}`);

    // Get student audio (mic input or file)
    const audioPath = await recordStudentAudio();

    // Submit and get feedback
    const turn = await client.sendTurn(session.id, { audioPath });
    turns.push(turn);

    // Show feedback
    if (turn.pronunciationScore < 60) {
      console.log(`Pronunciation needs work: ${turn.pronunciationScore}/100`);
      console.log('Try again with this phrase.');
    }
    if (turn.corrections.length > 0) {
      console.log('Grammar notes:', turn.corrections.map(c => c.note).join('; '));
    }

    isComplete = turn.sessionComplete;
  }

  // End session and get summary
  const summary = await client.endSession(session.id);
  return summary;
}

Step 4: Multi-Topic Session

const topics = ['greetings', 'directions', 'ordering-food', 'shopping'];
const results: SessionSummary[] = [];

for (const topic of topics) {
  console.log(`\n=== ${topic.toUpperCase()} ===`);
  const summary = await runConversationLesson(client, topic, 'es', 'intermediate');
  results.push(summary);
  console.log(`Score: ${summary.avgPronunciationScore}/100`);
}

// Overall progress report
console.log('\n=== Session Report ===');
console.table(results.map(r => ({
  topic: r.scenario,
  pronunciation: r.avgPronunciationScore,
  grammar: r.grammarAccuracy + '%',
  newWords: r.newWords.length,
  duration: r.durationMinutes + 'min',
})));

Topic Categories

CategoryScenariosLevel
Daily Lifegreetings, introductions, weatherBeginner
Traveldirections, hotel, airport, transportBeginner-Intermediate
Food & Drinkordering-food, grocery, cookingIntermediate
Businessmeeting, presentation, negotiationIntermediate-Advanced
Socialparty, dating, opinions, debateAdvanced

Output

  • Conversation session with AI tutor
  • Real-time pronunciation feedback (0-100 score)
  • Grammar corrections and suggestions
  • Vocabulary notes for new words
  • Session summary with progress metrics

Error Handling

ErrorCauseSolution
Session timeoutExceeded 30 minAuto-end with summary, start new session
Audio processing failedInvalid formatConvert to WAV 16kHz mono
Tutor not respondingAPI latencyImplement 10s timeout with retry
Recognition failedPoor audio qualityPrompt user to re-record in quiet environment

Resources

Next Steps

For pronunciation-focused training, see speak-core-workflow-b.

Examples

Quick test: Start a greetings scenario with level: 'beginner', send 3 text responses, end session, and review the summary scores.

Full lesson: Run 4 topics in sequence, track pronunciation improvement across topics, and generate a progress report.

What ships with it: 1 file

6.4 KB alongside SKILL.md

references/

Gives 0 of the 12 instructions most automation workflows skills give in ~1.3k tokens

Counted across 813 of the 1,214 authors here whose files we hold, read 2026-09-06

  • Use conventional commit message formatin 38 of 813, across 34 files
  • Write tests before implementing codein 26 of 813, across 12 files
  • Achieve at least 80 percent test coveragein 24 of 813, across 11 files
  • Mock external dependencies for unit testsin 22 of 813, across 10 files
  • Read product marketing context before asking questionsin 21 of 813, across 6 files
  • Implement rollback plans for every deploymentin 21 of 813, across 9 files
  • Follow the arrange-act-assert patternin 20 of 813, across 9 files
  • Delete branches after mergingin 20 of 813, across 18 files
  • Test all edge cases and error scenariosin 20 of 813, across 8 files
  • Use semantic selectors for UI testsin 19 of 813, across 7 files
  • Define sequence type and audience contextin 18 of 813, across 5 files
  • Monitor feature drift and prediction distribution driftin 18 of 813, across 5 files

Said here and by no other author read

  • Initialize SpeakClient with API credentials
  • Start conversation session with scenario and level
  • Submit student audio for pronunciation scoring
  • Display tutor text and pronunciation scores
  • Provide grammar corrections and vocabulary notes
  • Loop turns until session completion

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.