diff --git a/slides/index.html b/slides/index.html new file mode 100644 index 0000000..7f3cee6 --- /dev/null +++ b/slides/index.html @@ -0,0 +1,1795 @@ + + +
+ + +8 hour customer workshop
+Spend fewer tokens. Keep quality. Build enterprise guardrails.
+Reveal.js deck generated from repository guide content.
+ +Input, output, cached tokens, agent loops, MCP schemas, model routing.
+Prompt compression, output control, context hygiene, Ask/Edit/Agent routing.
+Enterprise budgets, model policy, instruction scope, monthly review loop.
+Use docs.github.com/copilot for supported feature behavior, billing controls, and admin policy.
| Time | Block | Output |
|---|---|---|
| 00:00-00:30 | Why tokens matter + fast wins | Shared cost model |
| 00:30-02:00 | Prompt, language, output labs | Terse prompt templates |
| 02:00-03:15 | Context + always-on files | Instruction pruning diff |
| 03:15-04:15 | Workflow + modes | Mode routing cheat sheet |
| 04:15-05:15 | MCP/tool costs + data | MCP audit list |
| 05:15-06:15 | Practical setup | Repo setup checklist |
| 06:15-07:30 | Model/pricing + governance | Customer admin rollout |
| 07:30-08:00 | Capstone | 30 day token plan |
Horizontal = chapters. Vertical = chapter slides + labs.
+Press Esc for overview. Press S for speaker notes.
Quick Start
+Start with output, then shrink structural input, then route models and tools.
+applyTo./chronicle improve in Copilot CLI.Verbose answers are expensive. One default instruction changes every response.
+Instruction files and tool schemas load repeatedly. Small baselines compound.
+Ask for questions. Edit for single-file changes. Agent for multi-step work.
+Budgets cap spend. Model policy limits expensive lanes.
+Identify your top 3 token leaks before learning techniques.
+Do: mark each as green/yellow/red: output verbosity, instruction size, open tabs, Agent use, MCP count, model pinning, long chat history.
+Deliverable: personal baseline + one "fix today" action.
+Time: 10 minutes.
+Part 1
+Tokens drive cost, speed, limits, and context capacity.
+Sure, I'd be happy to help! can burn around 10 tokens of zero technical value.
| Bucket | What it contains | Lever |
|---|---|---|
| Input | Prompt, context, files, history, tools | Scope and compress |
| Cached | Stable reused prefixes | Keep stable context stable |
| Output | Model response | Code-only, concise format |
Output tokens usually cost materially more than input tokens in vendor pricing examples.
+Context window
+├─ System prompt
+├─ copilot-instructions.md / AGENTS.md
+├─ File context and open tabs
+├─ Conversation history
+├─ MCP tool schemas
+└─ Your typed prompt
+ Your 20-word prompt can ride inside thousands of hidden tokens.
+One issue-to-PR run is not one request.
+Plan, search, read files, edit, run tests, inspect failures, retry.
+Every step reloads baseline context and adds previous tool results.
+Separate visible prompt from hidden context.
+Do: choose one recent Copilot task. List likely context sources: open files, referenced files, instructions, history, tools, output.
+Discuss: which source was most controllable?
+Time: 15 minutes.
+Part 2.1
+Say same thing in fewer tokens. Preserve technical precision.
+Articles, filler, pleasantries, hedging, softeners.
+Technical terms, code, filenames, constraints, exact done condition.
+[thing] [action] [reason]. [next step].
| Verbose | Caveman |
|---|---|
| Could you please review this pull request and let me know if there are any issues? | +Review PR. Flag issues. |
+
| Can you explain what this error message means and how I should fix it? | +Explain error. How fix. |
+
| Level | Style | Use when |
|---|---|---|
| Lite | Professional but tight | Client-facing, onboarding |
| Full | Fragments, no fluff | Daily developer prompts |
| Ultra | Abbrev, arrows, terse | High-volume, known domain |
POST /api/users
+Validate:
+- name: string, required
+- email: string, required, valid
+400 on validation fail
+201 on success, return created user
+Save to DB
+ Bullets and key-value pairs force clarity and reduce filler.
+Create a function that takes numbers, filters negative values, doubles remaining values, returns sum.
+fn(nums) -> filter(>0) -> map(*2) -> sum
Like getUserById but for emails. 404 if missing.
| Verbose procedure | Compressed invariant |
|---|---|
| Make sure every SQL query parameterizes values... | SQL: parameterized queries only. No concatenation. |
| Please write tests for any new code... | New code -> tests. Cover happy + error. |
Rewrite one real prompt three ways: lite, full, ultra.
+Do: preserve file names, line numbers, constraints, done condition. Drop only fluff.
+Compare: which version is shortest without adding ambiguity?
+Time: 20 minutes.
+A: Could you take a look at auth and improve error handling?
+
+B: File: src/auth/login.ts.
+Bug: null user causes .email crash.
+Fix: null guard before .email.
+Test: add null-user case.
+Done: targeted test passes.
+ Run: ask Copilot with A, then B. Compare file reads, clarifications, output length.
+Part 2.2
+English is usually most token-efficient for prompts.
+| Language | Sentence | Tokens | vs English |
|---|---|---|---|
| English | I met a huge dog | 5 | 1.0x |
| Spanish | Conoci a un perro enorme | 8 | 1.6x |
| Chinese | Chinese equivalent | 11 | 2.2x |
| Japanese | Japanese equivalent | 11 | 2.2x |
| Russian | Russian equivalent | 14 | 2.8x |
If a user writes better in native language, quality can outweigh token cost. For optimization, English wins.
+Disprove or confirm language assumptions with actual token counts.
+Do: pick one prompt. Translate to your strongest non-English language. Compare token counts in tokenizer tool.
+Deliverable: team language guidance: when English is required, when native language is OK.
+Time: 20 minutes.
+Part 2.3
+Control what gets sent. Biggest input wins are structural.
+.github/copilot-instructions.md, AGENTS.md, CLAUDE.md, and similar files can become persistent context.
Duplicate content can be paid twice when multiple files are loaded by different tools.
+Terse like caveman. Technical substance exact. Only fluff die.
+Drop: articles, filler (just/really/basically), pleasantries, hedging.
+Fragments OK. Short synonyms. Code unchanged.
+Pattern: [thing] [action] [reason]. [next step].
+ Around 50 tokens. Loaded on every interaction.
+---
+applyTo: "src/api/**/*.ts"
+---
+API conventions:
+- Routes in src/api/routes/. Handlers thin, logic in services/.
+- Validate with zod.
+- Errors via Result<T,E>, never throw.
+ Pay path-specific guidance only when relevant files are in scope.
+| Scope | Use for | Token posture |
|---|---|---|
| Always-on | Universal rules | Keep tiny |
| Conditional | Path/layer rules | applyTo |
| On-demand | Review checklists, release notes | Load only when invoked |
Configure Content Exclusion for sensitive files, generated bundles, large data files, and regulated paths.
+Important: treat this as privacy/policy control first, token-saving side effect second. Check current surface support in official docs.
+Find always-on context that should become scoped or on-demand.
+Do: inspect repo instructions, AGENTS/CLAUDE files, open tabs, generated files, MCP config.
+Deliverable: three-column list: keep always-on, move to applyTo, move on-demand/delete.
Time: 30 minutes.
+Part 2.4
+Tell model what not to say. Highest per-token ROI.
+Code only, no explanation.
+ Best for generation tasks when team already understands desired change.
+| Instruction | Use when |
|---|---|
| Answer in one sentence | Quick decision or explanation |
| 3 bullets max | Scan-friendly summary |
| Reply as JSON | Machine-readable extraction |
| Yes/no, then one line why | Review gate |
| Diff only | Patch inspection |
Be concise. No explanations unless asked.
+Code only for generation tasks.
+Bullets over paragraphs.
+ Override when learning, debugging, or teaching: ask for explanation explicitly.
+A: Add input validation to processOrder().
+
+B: Add input validation to processOrder().
+Code only. No explanation. Minimal diff.
+ Measure: response length, explanation tokens, diff usefulness.
+Time: 15 minutes.
+Practice asking for bounded output.
+Prompts: "3 bullets max", "table only", "JSON only", "one-line verdict + risk".
+Deliverable: team snippet library for common Copilot outputs.
+Part 2.5
+Use cheaper interaction shapes before optimizing words.
+feat: add password reset via settings page
Body only when "why" is not obvious.
+L42: bug: user can be null. Add guard before .email.
One-line, actionable, severity-coded.
+| Task | Mode | Reason |
|---|---|---|
| What does function do? | Ask | One call |
| Syntax question | Ask | No tools |
| Single-file tweak | Edit | Targeted |
| Multi-file refactor | Agent | Needs tools |
| Issue-to-PR | Coding Agent | Autonomous workflow |
Auto is a good baseline: supported Auto pool, org policy-aware, discount on eligible paid-plan Chat usage per docs.
+Auto does not mean "escalate into every premium model." Pin premium deliberately.
+Target model: GPT-5.5.
+Guide: <official prompting guide URL>
+Files: .github/copilot-instructions.md, .github/instructions/*.md
+Adapt prompts to guide. Preserve behavior. Reduce rework.
+Show diff only.
+ /chronicleCopilot CLI session history. Use /chronicle improve for recurring confusion.
VS Code local extension. Finds anti-patterns, context health, skill opportunities.
+Stop using Agent Mode for one-shot work.
+Do: classify 20 sample tasks as Ask/Edit/Agent/Coding Agent. Defend choice.
+Deliverable: team mode-routing cheat sheet.
+Time: 20 minutes.
+Prevent expensive-model pinning by default.
+Do: map tasks to Auto, included/lower-cost, standard, premium. Include reasoning-effort choice if available.
+Deliverable: model escalation rules.
+Part 2.6
+More context can make agents worse and cost more.
+| Finding | Observed impact |
|---|---|
| LLM-generated context files | Hurt in 5/8 settings |
| Average correctness | Down about 2% |
| Token cost | Up 20-23% |
| Reasoning overhead | Up about 22% in cited setup |
Repeats facts agent can discover.
Important rules get lost in middle.
Outdated tool guidance over-influences agent.
Routine facts dilute landmines.
| Keep | Delete |
|---|---|
Use uv instead of pip | This is a Python project |
| DB migrations must run in order | We use PostgreSQL |
| Do not refactor auth module; audit pending | We use JWT auth |
| Deploy requires VPN | Main branch protected |
Start almost empty.
+Agent trips on something -> add one line.
+Root cause fixed -> delete that line.
+ Instruction files should grow and shrink, not accumulate like a wiki.
+Cut context without losing correctness.
+Do: mark each instruction as discoverable, style, landmine, stale, duplicate. Delete or scope everything except true always-on landmines.
+Deliverable: 10-line max instruction file draft.
+Time: 35 minutes.
+Part 2.7
+Tool schemas are hidden token tax.
+/context
+
+System/Tools: MCPs + instructions + system prompt
+Messages: conversation history
+Free Space: remaining context
+ In VS Code, estimate active MCP servers x tools x about 200 tokens/tool.
+| Component | Approx cost |
|---|---|
| Name + description | 20-50 tokens |
| Simple parameter schema | 30-80 tokens |
| Complex parameter schema | 100-300 tokens |
| Total per tool | 100-500 tokens |
10 MCP servers
+x 5 tools each
+x 200 tokens/tool
+= 10,000 tokens per step
+
+15 agent steps = 150,000 schema tokens
+ CLI proxy filters noisy shell output before agent reads it: tests, git diff, grep, logs, file listings.
+rtk init --copilot
+ One large plugin can dominate System/Tools budget.
+--namespace appservice --namespace cosmos --namespace keyvault --namespace storage
+ Scope by service/persona. Avoid "all tools" mode unless truly needed.
+Remove hidden schema overhead.
+Do: inventory enabled MCP servers, tool counts, global vs workspace scope, owner, frequency of use.
+Deliverable: keep/disable/scope table + restart plan.
+Time: 30 minutes.
+Define approved MCP servers by persona: developer, data, platform, security, support.
+Deliverable: default MCP profile per team + exception process for large plugins.
+Part 3
+Use evidence to pick habits with best impact-to-effort.
+| Technique | Prompt | Tokens |
|---|---|---|
| Verbose | Please add comprehensive error handling... | ~40 |
| Caveman lite | Add error handling. Cover null, types, network. | ~16 |
| Caveman full | Error handling. Cover: null, bad type, net error. | ~12 |
| Ultra | Error handling: null/bad-type/net-err. | ~7 |
Savings: lite ---- full ---- ultra ---- extreme
+Risk: low ---- low ---- medium --- high
+ Sweet spot: full caveman. Maximum return, negligible risk for technical users.
+Pick changes by impact, effort, risk.
+Do: rate each technique 1-5 for impact, effort, adoption friction, governance need.
+Deliverable: team top 5 and "do not adopt" list.
+Time: 25 minutes.
+Part 4
+Turn techniques into repo and team defaults.
+.github/copilot-instructions.md.applyTo.copilot-setup-steps.yml for Coding Agent.Terse like caveman. Technical substance exact. Only fluff die.
+Drop: articles, filler, pleasantries, hedging.
+Fragments OK. Short synonyms. Code unchanged.
+Code only for generation tasks. No explanation unless asked.
+Minimize tool calls. Batch related reads/edits.
+ # .github/copilot-setup-steps.yml
+steps:
+ - name: Install dependencies
+ run: npm ci
+ - name: Build
+ run: npm run build
+ Prevents discovery by trial and error. Saves agent steps.
+Bug: login fails when email contains "+".
+File: src/auth/login.ts, validateEmail() L42.
+Fix: URL-encode email before OAuth provider call.
+Test: add user+tag@example.com case.
+Done: targeted test passes.
+ | Week | Habit |
|---|---|
| 1 | Compressed instructions + Ask Mode for questions |
| 2 | Caveman-lite prompts |
| 3 | Caveman-full + structured formats |
| 4 | Code-only defaults + reusable snippets outside always-on context |
{
+ "chat.agent.maxRequests": 10,
+ "github.copilot.chat.agent.model": "auto"
+}
+ Cap runaway sessions carefully. Increase only when task requires it.
+Create a repo-ready token optimization PR draft.
+Do: draft copilot-instructions.md, one scoped instruction file, one Coding Agent setup step, one issue template snippet.
Deliverable: branch or patch proposal.
+Time: 45 minutes.
+Part 4.2
+Separate Copilot docs, UBB framing, and vendor token pricing.
+| View | Answers |
|---|---|
| GitHub Copilot docs | Plan availability, model access, Auto behavior, published signals |
| UBB framing | AI-credit budgets and governance after cutover |
| Vendor API pricing | Input vs output intuition, not Copilot billing table |
| Effort | Use for |
|---|---|
| Low | High-volume simple chat/classification |
| Medium | Typical coding and tool-heavy work where supported |
| High/max | Architecture, security, novel decomposition |
Use only on models that expose this control.
+Define when users may pin premium models and when Auto is required.
+Do: map workflows to default model lane, escalation trigger, expected value, rollback signal.
+Deliverable: one-page model policy draft.
+Time: 30 minutes.
+Part 4.3
+Admin controls cap spend. Prompt habits improve efficiency.
+Prompt compression does not cap spend. It reduces waste inside allowed usage.
+Set enterprise/org/cost-center budgets. Enable alerts early. Enable stop-usage after reporting is trusted. Review monthly.
+$0 budget: no usage-based features.| Question | Decision |
|---|---|
| Which workflows need premium? | Enable narrowly |
| Which teams create measurable value? | Assign higher budgets |
| Which users can stay on Auto? | Keep default path cheap |
| What rollback signal? | Usage up, value flat |
Useful for different model policies or billing boundaries when org structure already matches groups.
+Costs: admin overhead, license complexity, user sprawl, SCIM/cost-center constraints.
+Design budget rollout for one enterprise account.
+Do: choose pilot org, cost center, baseline budget, alert threshold, stop-usage rule, user exceptions.
+Deliverable: budget operating model.
+Time: 35 minutes.
+Agent sessions spike AI-credit usage 4x in one team. Delivery output unchanged.
+Decide: budget action, model policy action, instruction/context action, MCP audit action, comms plan.
+Time: 25 minutes.
+Capstone
+Turn workshop into customer rollout.
+| Week | Team action | Admin action |
|---|---|---|
| 1 | Output defaults + Ask Mode | Usage baseline |
| 2 | Instruction pruning + scoped rules | Budget pilot |
| 3 | MCP audit + model routing | Model access review |
| 4 | Agent issue templates + setup steps | Monthly reporting cadence |
Create customer-specific action plan.
+Sections: repo changes, user habits, MCP/tool policy, model policy, budgets, reporting, owner, due date.
+Deliverable: 30 day plan ready for customer sponsor.
+Time: 30 minutes.
+applyTo files