AI EngineeringZero to ProductionHome·About·Contact
Anthropic Skills · Chapter K8

AI Fluency: framework & foundations

The judgment layer over capability — Delegation, Description, Discernment, Diligence — with runnable decision aids, mapped across the course, and how a lead builds team-wide fluency.

⏱️ ~2 hours🧪 5 labs🎯 Beginner→Tech-lead

Learning objectives

  • Name the four components of AI Fluency and what each guards against.
  • Apply Delegation and Description in practice.
  • Apply Discernment: judge output critically.
  • Apply Diligence and lead fluent AI use on a team.
▶ Runnable companionCode saved under code/ak8-ai-fluency/. Python runs offline; configs are ready to use.

1 · Why a framework essential

Everything so far was capability — what Claude can do. AI Fluency is the judgment layer: collaborating with AI effectively, ethically, and safely. It's what separates using AI from using it well. Four parts — the "4 Ds."

Delegation what to hand off Description how to ask Discernment how to judge Diligence how to be responsible
🗺️ How to read this diagram

This is the whole lesson in one row: AI Fluency — working well with AI — is four skills, read left to right in the order you use them on any task.

  • Delegation — "what to hand off": first decide which parts of a task to give the AI and which to keep for a human.
  • Description — "how to ask": once you've delegated, communicate clearly what you want (goal, constraints, an example).
  • Discernment — "how to judge": critically check what came back — is it actually correct, not just well-written?
  • Diligence — "how to be responsible": own the outcome — transparency, privacy, and no "the AI wrote it" excuses.
  • The arrows show these build on each other: better delegation and description up front mean less to fix during discernment later.

In short: Remember them as four questions you ask on every task — What do I hand off? How do I ask? How do I judge the result? How do I stay responsible?

2 · Delegation — what to hand to AI essential

Decide what to delegate and what to keep. Delegate: well-specified, verifiable, or tedious tasks. Keep: judgment calls, work you can't verify, and anything where being wrong is expensive and irreversible — the "should this be an agent?" test (Ch 4), generalized.

Example code for learning — review, test, and adapt it before running against real or production systems. Commands can create, change, or delete resources. See the Terms & Disclaimer.
Python · a delegation decision aid (runs)
delegate.pydef delegate_score(specified, verifiable, reversible, tedious):
    """Higher = safer to delegate. Each input 1-5."""
    score = specified + verifiable + reversible + tedious
    if score >= 16: return score, "delegate freely"
    if score >= 11: return score, "delegate, but verify carefully"
    return score, "keep human — or make it more specified/verifiable first"

print(delegate_score(5, 5, 5, 4))    # boilerplate refactor
print(delegate_score(2, 2, 1, 3))    # a fuzzy, irreversible call
(19, 'delegate freely')
(8, 'keep human — or make it more specified/verifiable first')
▶ How this works

This little program turns the Delegation question — "is this task safe to hand to AI?" — into a number. You rate a task on four qualities, and it tells you whether to delegate freely, delegate with checking, or keep it human. It's a decision aid, not magic; the value is in forcing you to think about the four qualities.

  1. def delegate_score(specified, verifiable, reversible, tedious): defines a reusable recipe (a function). You pass in four scores, each rated 1 to 5: is the task well specified, can you verify the result, is it reversible if wrong, and is it tedious (boring work AI is great at).
  2. score = specified + verifiable + reversible + tedious simply adds the four ratings into a total from 4 (worst to delegate) to 20 (safest).
  3. The if score >= 16: return ... lines are thresholds: 16+ means "delegate freely"; 11+ means "delegate, but verify carefully"; anything lower falls through to "keep human". Only one branch runs. return hands back both the number and the verdict.
  4. The two print(...) lines call the function on two example tasks — a boilerplate refactor (high on every quality) and a fuzzy, irreversible call (low on every quality) — and print the results.

What the output means: You get two lines. (19, 'delegate freely') — the boilerplate scored 19, so hand it off. (8, 'keep human ...') — the fuzzy task scored only 8, so a person should own it.

Try this: Change the second call to delegate_score(4, 4, 2, 3) (score 13) and re-run — the verdict flips to "delegate, but verify carefully". That middle zone is where most real work lives.

3 · Description — how to ask essential

Description is communicating intent: context, constraints, examples, and the shape of a good answer — the craft from PE1/PE2, reframed as a fluency skill. Clearer description → less discernment needed later.

A good description includes

  1. The goal and who the output is for.
  2. Constraints and non-goals ("don't do X").
  3. An example of a good answer when format matters.
  4. How you'll judge success — so the model optimizes for the right thing.

4 · Discernment — how to judge intermediate

Discernment is critically evaluating output: correct? complete? appropriate? Models are fluent and confident even when wrong, so discernment is active — check facts, test code, notice when a polished answer is subtly off. This is why the course insists you verify.

Python · a discernment checklist scorer (runs)
discernment.pydef discernment_pass(output):
    checks = {
        "facts_checked":   output.get("facts_checked", False),
        "code_ran":        output.get("code_ran", False),
        "edge_cases":      output.get("edge_cases_considered", False),
        "sources_valid":   output.get("sources_valid", False),
    }
    passed = sum(checks.values())
    return passed >= 3, [k for k, v in checks.items() if not v]

ok, gaps = discernment_pass({"facts_checked": True, "code_ran": True, "sources_valid": True})
print("trust it?", ok, "| still verify:", gaps)
trust it? True | still verify: ['edge_cases']
▶ How this works

This aid supports Discernment — judging whether an AI's answer is trustworthy. It takes a record of which verification steps you actually did and reports whether you've done enough, plus exactly which checks are still missing. The point of the lesson: a fluent answer feels true, so you check it deliberately instead of trusting the polish.

  1. output is a dictionary — a set of labelled yes/no facts about what you verified. output.get("facts_checked", False) reads one fact and safely defaults to False ("not done") if that fact was never recorded, so a missing key never crashes.
  2. checks collects the four verification questions: were facts checked, did the code actually run, were edge cases considered, and are the sources valid.
  3. passed = sum(checks.values()) counts how many are True (Python treats True as 1). return passed >= 3, [k for k, v in checks.items() if not v] returns two things: whether at least 3 checks passed, and a list of the checks that failed (that [... if not v] is a list comprehension — "keep each name k whose value v is False").
  4. The call passes a record with three checks done (facts, code, sources) but leaves out edge cases, then prints the verdict and the remaining gap.

What the output means: trust it? True | still verify: ['edge_cases'] — 3 of 4 checks passed so it clears the bar, but it honestly flags that edge cases were never considered. "Good enough" and "still has a gap" can both be true at once.

Try this: Flip "code_ran" to False (remove it from the call) so only 2 checks pass, and watch trust it? become False — below the 3-of-4 threshold.

Fluency is not correctnessA well-written answer feels true. Discernment is the deliberate habit of separating "sounds right" from "is right" — the most valuable skill as outputs get more polished.

5 · Diligence — how to be responsible advanced

Diligence is using AI responsibly: transparency about what was AI-assisted, privacy (no secrets/PII in prompts), IP/attribution, and owning the outcome — the AI doesn't. Connects to security and governance.

You own the output"The AI wrote it" is never a defense for a wrong number, a leaked secret, or a biased decision. Diligence means the human takes responsibility for what ships — every time.

6 · Professional — the 4 Ds across the course professional

DMaps toCourse sections
Delegationagent-vs-workflow decisionCh 4, AK5
Descriptionprompt & context engineeringPE1–PE2, AK1
Discernmentevaluation + verifyCh 5, TQ, AK1
Diligencesecurity, guardrails, governancext1, W6/W14, O4

7 · Tech-lead — build fluency on the team tech-lead

A lead makes fluent AI use the norm: delegation guidelines (what the team should/shouldn't hand to AI), shared prompt/Skill libraries (Description), verification gates (Discernment), and responsible-use policy (Diligence). Fluency scales from individual habit to team culture.

Python · assess a team's AI fluency (runs)
fluency.pydef fluency_maturity(team):
    dims = {
        "delegation_guidelines": team.get("delegation_guidelines", False),
        "shared_prompt_library":  team.get("shared_prompt_library", False),
        "verification_required":  team.get("verification_required", False),
        "responsible_use_policy": team.get("responsible_use_policy", False),
    }
    score = sum(dims.values())
    level = ["ad-hoc","emerging","practicing","fluent"][score] if score < 4 else "fluent"
    return level, [k for k, v in dims.items() if not v]

lvl, gaps = fluency_maturity({"delegation_guidelines": True, "verification_required": True})
print("team fluency:", lvl, "| build next:", gaps)
team fluency: practicing | build next: ['shared_prompt_library', 'responsible_use_policy']
▶ How this works

The final aid scales fluency from one person to a whole team — the tech-lead view. It checks whether the team has the four practices that make AI use dependable, then names a maturity level and what to build next. Same shape as the other two aids: read some yes/no facts, score them, return a verdict plus the gaps.

  1. team is again a dictionary of yes/no facts. dims gathers the four team practices: written delegation guidelines, a shared prompt library (Description), a verification requirement (Discernment), and a responsible-use policy (Diligence) — the four Ds turned into team habits.
  2. score = sum(dims.values()) counts how many of the four practices exist (0 to 4).
  3. level = ["ad-hoc","emerging","practicing","fluent"][score] if score < 4 else "fluent" uses the score as an index into a list of level names — score 0 gives "ad-hoc", score 2 gives "practicing". The if score < 4 else "fluent" guard avoids reading past the end of the list when the score is a full 4.
  4. The call passes a team that has guidelines and verification but is missing the other two, then prints the level and the list of practices still to build.

What the output means: team fluency: practicing | build next: ['shared_prompt_library', 'responsible_use_policy'] — 2 of 4 practices in place puts the team at "practicing", and it names the two missing pieces to work on next.

Try this: Set all four practices to True in the call and re-run — the level becomes "fluent" and build next is an empty list []. That empty list is the goal: nothing left to add.

Why the tech-lead tiers matteredEvery section's tech-lead rung gave you real leadership material — standards, verification gates, shared libraries. Those are the practices that make a team AI-fluent. The course didn't just teach skills; it gave you the framework to lead their use.

Exercise AK8.1 — Score a task and a team

Context: Running the full 4-D loop on one real task — and then on a team — is what turns the framework from vocabulary into practice: delegate deliberately, describe precisely, discern honestly, and own the outcome.

Your task: Take a task you'd give an AI: run delegate.py on it, write a description with all four elements, list your discernment checks, name the diligence obligations, then score a team with fluency.py and pick the dimension to build next.

Requirements:

  • Run delegate.py on a real candidate task and record the verdict
  • Write a description with all four elements (context, format, constraints — plus the task itself)
  • List the discernment checks you'd apply to the output
  • Name the diligence obligations for shipping it
  • Score a real or hypothetical team with fluency.py and pick the weakest dimension to build next

💡 Hint: Carry one concrete task through all four Ds before zooming out to the team score — the team gap is easier to name once you've felt the individual loop.

🪜 Practice ladder beginner → industry

Six graded exercises, easy to real-world. Try each before opening its solution.

Exercise 1 · Name the 4 DsBeginner

Context: AI fluency rests on four practices — Delegation, Description, Discernment, Diligence — that together cover the full arc of working with AI: decide what to hand over, ask well, judge the result, and own the outcome.

Your task: Map each of the 4 Ds to the question it answers.

Requirements:

  • Delegation answers WHAT to hand to AI (and what to keep)
  • Description answers HOW to ask — context, format, constraints
  • Discernment answers HOW to judge the output — is it correct and good
  • Diligence answers HOW to stay responsible — sourcing, ethics, review
  • Frame them as an ongoing checklist, not a one-time setup

💡 Hint: Each D is a question, not a step — pair the practice with the question it forces you to ask.

Show solution

Four practices, four questions (pure recall + framing):

def the_4ds(d):
    return {
        "Delegation":  "WHAT should I hand to AI (and what should I keep)?",
        "Description": "HOW do I ask — what context, format, constraints?",
        "Discernment": "HOW do I judge the output — is it correct and good?",
        "Diligence":   "HOW do I stay responsible — sourcing, ethics, review?",
    }[d]

for d in ("Delegation", "Description", "Discernment", "Diligence"):
    print(d, "->", the_4ds(d))

The 4 Ds cover the full arc of working with AI: decide what to hand over, ask well, judge the result, and own the outcome. They're a checklist for using AI well, not a one-time setup.

Exercise 2 · Delegation — what to hand overIntermediate

Context: Delegation is a judgement call on capability, recoverability, and stakes — hand over work AI does well where a mistake is catchable, and keep the decisions you must own.

Your task: Write the rule for what to hand to AI versus keep, and apply it to three tasks.

Requirements:

  • The rule takes: AI-capable, error-recoverable, and high-stakes-judgement
  • High-stakes judgement → keep (the decision is yours to own)
  • AI-capable + errors recoverable → delegate
  • Otherwise keep (poor AI fit or errors too costly)
  • Apply it to three concrete example tasks with differing answers

💡 Hint: Stakes gate everything: even a capable, recoverable task is kept when the judgement is yours to own.

Show solution

Delegate where AI is capable and errors are catchable; keep the high-stakes judgement:

def delegate(ai_capable, error_recoverable, high_stakes_judgement):
    if high_stakes_judgement:
        return "KEEP — the decision is yours to own"
    if ai_capable and error_recoverable:
        return "DELEGATE — capable task, mistakes are catchable"
    return "KEEP — either not a good AI fit or errors too costly"

print(delegate(True, True, False))    # draft the first version of a doc -> DELEGATE
print(delegate(True, True, True))     # decide whether to fire someone   -> KEEP
print(delegate(False, True, False))   # task AI is bad at                -> KEEP

Delegation is a judgement call on capability, recoverability, and stakes — hand over work AI does well where a mistake is catchable, and keep the decisions you must own. Delegating well is a skill, not an all-or-nothing switch.

Exercise 3 · Description — ask wellAdvanced

Context: Most "bad AI output" is really an under-described request — adding context, format, and constraints collapses the space of acceptable answers down to the one you actually want.

Your task: Turn a weak request into a strong one by adding context, format, and constraints, and name the three levers.

Requirements:

  • Start from a vague request and rewrite it
  • Add context: who the audience is and why
  • Add format: length and structure
  • Add constraint: what to avoid and what to use
  • Name the three levers explicitly and show the strong version

💡 Hint: Layer the three levers onto the weak ask one at a time — context, then format, then constraints.

Show solution

Three levers turn a vague ask into a precise one:

Weak:   "Write about our product."

Strong: [Context]   "For a technical audience evaluating our API..."
        [Format]    "...write a 150-word overview with a 3-bullet feature list..."
        [Constraint]"...no marketing superlatives; use our real endpoint names."

def describe(context, fmt, constraint):
    return f"{context} {fmt} {constraint}"

Adding context (who/why), format (length, structure), and constraints (what to avoid, what to use) collapses the space of acceptable answers to the one you actually want. Most "bad AI output" is really an under-described request.

Exercise 4 · Discernment — judge the outputExpert

Context: Fluent output can be confidently wrong, so discernment checks accuracy and grounding, not just fluency — "it reads well" is the trap a real rubric is built to catch.

Your task: Write a rubric that scores an AI output on the dimensions that matter, not just "looks fine".

Requirements:

  • Score accuracy — were the claims actually verified
  • Score grounding — can the claims be traced to sources
  • Score completeness — is anything important missing from the ask
  • Score appropriateness — right tone and format for the audience
  • Produce a verdict (accept vs revise) and name which dimensions failed
  • Make clear fluency alone is not one of the passing criteria

💡 Hint: Score the axes that separate plausible from correct — verified, traceable, complete, fit — and treat "reads well" as no signal.

Show solution

Score the axes that separate plausible from correct:

def discern(o):
    checks = {
        "accurate":   o.get("claims_verified"),      # did you check the facts?
        "grounded":   o.get("sources_cited"),         # can claims be traced?
        "complete":   o.get("covers_the_ask"),        # nothing important missing?
        "appropriate":o.get("right_tone_and_format"), # fits the audience/format?
    }
    failed = [k for k, ok in checks.items() if not ok]
    return "ACCEPT" if not failed else "REVISE -> " + ", ".join(failed)

print(discern({"claims_verified":True,"sources_cited":True,
               "covers_the_ask":True,"right_tone_and_format":True}))   # ACCEPT
print(discern({"claims_verified":False,"sources_cited":False,
               "covers_the_ask":True,"right_tone_and_format":True}))   # REVISE -> ...

Fluent output can be confidently wrong, so discernment checks accuracy and grounding, not just fluency — verify the claims, trace the sources, confirm completeness and fit. "It reads well" is the trap; the rubric forces the checks that catch a plausible-but-wrong answer.

Exercise 5 · Diligence — be responsibleProfessional

Context: Diligence is where accountability lives: the person shipping AI-assisted work owns it regardless of how it was produced, so verification, data-handling, fairness, disclosure, and human review are the practices that keep it responsible.

Your task: Write the pre-ship checklist for shipping AI-assisted work.

Requirements:

  • Facts verified against a real source, not the model's assertion
  • No secrets or private data placed in prompts or outputs
  • A bias / fairness sanity-check for anything affecting people
  • Disclosure where context or policy requires it
  • A human reviewed and takes responsibility for the result
  • Provenance noted so the work can be re-checked later

💡 Hint: Each item is an accountability practice — verify, protect data, check fairness, disclose, and keep a named human owner.

Show solution

Own the outcome: verify, disclose where required, and keep a human in the loop:

Diligence checklist (before shipping AI-assisted work):
  [ ] Facts verified against a real source, not the model's assertion.
  [ ] No secrets or private data placed in prompts or outputs.
  [ ] Bias / fairness sanity-check for anything affecting people.
  [ ] Disclosure where your context/policy requires it.
  [ ] A human reviewed and takes responsibility for the result.
  [ ] Provenance noted so the work can be re-checked later.

Diligence is where accountability lives: the person shipping the work owns it regardless of how it was produced. Verification, data-handling, fairness, disclosure, and human review are the practices that keep AI assistance responsible rather than a way to launder unchecked output.

Exercise 6 · Build fluency on the team (tech-lead)Industry scenario

Context: The 4 Ds scale on a team only when each becomes a concrete guardrail — a delegation list, a prompt library, a review rubric, diligence baked into "done" — so fluency travels through shared assets and coaching, not tribal knowledge.

Your task: As tech lead, turn the 4 Ds into team practice: write a one-page policy that says which D each guardrail enforces and how you'd coach it.

Requirements:

  • Delegation → a shared "AI-appropriate vs human-only" task list, reviewed as capability changes
  • Description → a prompt/template library so good context+format+constraints are the default
  • Discernment → a review rubric (accuracy, grounding, completeness, fit) applied before merge
  • Diligence → verification + disclosure + human-owner in the definition of done; secrets never enter prompts
  • Coaching: pair on real tasks and make "why did you accept this output?" a normal review question

💡 Hint: Turn each D into an artifact a teammate can pick up — a list, a library, a rubric, a definition-of-done rule.

Show solution

Map each team guardrail to the D it operationalizes:

Team AI-fluency policy
  Delegation:  a shared list of "AI-appropriate" vs "human-only" task classes;
               review it quarterly as capability changes.
  Description: prompt/template library so good context+format+constraints
               are the default, not rediscovered each time.
  Discernment: a review rubric (accuracy, grounding, completeness, fit)
               applied to AI-assisted deliverables before merge.
  Diligence:   verification + disclosure + human-owner requirements in the
               definition of done; secrets never enter prompts.

  Coaching: pair on real tasks, review against the rubric, and treat
            "why did you accept this output?" as a normal review question.

The 4 Ds scale on a team when each becomes a concrete guardrail: a delegation list, a prompt library, a review rubric, and diligence baked into "done." Fluency then travels through shared assets and coaching, not tribal knowledge — everyone inherits the same good defaults.

✓ Checkpoint — you can move on when you can…

  • Name the four Ds and what each guards against.
  • Apply delegation + description in practice.
  • Judge output with active discernment.
  • Uphold diligence and lead team fluency.

Knowledge check check yourself

✓ Knowledge check

In the Delegation dimension of AI fluency, which four properties of a task make it safe to hand to AI, and what kind of task should stay human?

Show answer
A task is safer to delegate when it is well-specified, verifiable, reversible, and tedious. Work that is a genuine judgment call, unverifiable, or has irreversible/expensive consequences if wrong should stay with a human, even if AI could produce a fluent-sounding answer.
✓ Knowledge check

Why is Discernment described as deliberate rather than passive, and why can't "the AI wrote it" excuse a bad output under Diligence?

Show answer
Models are fluent and confident even when wrong, so you must actively check facts, run code, consider edge cases, and verify sources rather than trust polish. Under Diligence the human owns the outcome, so a wrong number, leaked secret, or biased decision is your responsibility regardless of which tool produced it.
© 2026 studybydoing.in · AI Engineering: Zero to Production · All rights reserved. · About · Privacy Policy · Terms · Contact
Educational content, provided as-is and without warranty. Code samples are examples — review, test, and adapt them before using in production. See the Terms of Use & Disclaimer. Use at your own risk.
© studybydoing.in