docs: participant guide + symptom-indexed troubleshooting - #27
Merged
Conversation
… doc Two docs a workshop participant needs and the repo did not have (grep for "troubleshoot" previously returned nothing). - docs/PARTICIPANT_GUIDE.md: the path through the workshop. Prerequisites as a required/optional table, profile chooser, the module table with REAL timings from live runs (module 6 is ~7-8 min of CodeBuild, not a hang), how to verify by hand, framework selection, platform.yaml, teardown, and where to read more. - docs/TROUBLESHOOTING.md: symptom -> cause -> fix, indexed by symptom, with every entry drawn from a failure we actually hit — bash 3.2, the npx probe hang, expired credentials mid-deploy, env creds silently beating AWS_PROFILE, ORG_ID, model IDs aging out, image-tag caching, Unauthorized, HTTP 424, Authorization method mismatch, missing gateway tools, no traces, the 1% X-Ray sample, export-in-use on destroy, and the agentic_ai ENI drain. Leads with the two rules that save the most time: read the container logs, and CREATE_COMPLETE proves nothing about behaviour. Fixes found while fact-checking the drafts against the code — the docs were right to be checked, and two of these are defects in the product, not the docs: - MODULE_EXPLAIN[A] claimed Memory deploys "semantic + user-preference strategies". The semantic strategy is added only when USE_LONG_TERM_MEMORY is true, which no profile sets — so the wizard was overstating what module A builds. Narration now says which is conditional and that it costs more. - MODULE_EXPLAIN[4] claimed module 4 "federates your enterprise IdP ... and creates OAuth2 credential providers (3LO + M2M)". By default it creates only the gateway M2M provider: federation needs IDP_TYPE set to a non-cognito value (the prompt defaults to cognito) and each 3LO provider needs its client id supplied. Narration now separates always-on from opt-in. - README listed Docker as required local tooling; check_prereqs treats it as optional because images build in CodeBuild. Corrected, and bash 4+ and the python3.13 name added, since both are real requirements it omitted. Also corrected in the drafts before commit: `--profile` on `deploy` runs cdk deploy --all rather than the profile's module sequence; `invoke.py --tools` queries the gateway, not the agent (and the default orchestrator has no tools at all, so "what tools do you have?" is a misleading first prompt); security-focused needs ORG_ID; A2A runtimes report protocol A2A, not HTTP; the JWT verification section applies per-pattern and never to the orchestrator; missing gateway tools are silent in only two conditions, while an AccessDenied on the vault secret fails the invoke outright; and test_memory.py uses local credentials so it cannot verify the runtime role. Verified: - check-workshop-flow.sh passes (the narration is sed-extracted, so the MODULE_EXPLAIN edits had to stay one physical line each); dry run prints the new module 4 and A text. - check-deploy-config.sh passes; pytest 99 passed; shellcheck unchanged at the 2 pre-existing findings. - Every relative link and every quick-index anchor in both docs resolves (checked with GitHub's slug rules), and every command was checked against the scripts and flags that actually exist.
|
Commit: Security Scan Results
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Two docs a workshop participant needs and the repo didn't have — grepping for "troubleshoot" previously returned nothing.
docs/PARTICIPANT_GUIDE.md— the path through the workshop: prerequisites as required/optional (with the things that actually bite:python3.13by that exact name, bash 4+, Docker not needed), profile chooser, the module table with real timings from live runs, verification by hand, framework selection,platform.yaml, teardown.docs/TROUBLESHOOTING.md— symptom → cause → fix with a symptom index. Every entry is a failure we actually hit: bash 3.2, the npx probe hang, credentials expiring mid-deploy, env creds silently beatingAWS_PROFILE, ORG_ID, model IDs aging out, image-tag caching,Unauthorized, HTTP 424,Authorization method mismatch, missing gateway tools, no traces, the 1% X-Ray sample, export-in-use on destroy, theagentic_aiENI drain.It leads with the two rules that save the most time: read the container logs first, and
CREATE_COMPLETEproves nothing about behaviour.Product defects found by fact-checking the drafts
I checked every claim against the code before committing. Two turned out to be the wizard overstating what it builds:
MODULE_EXPLAIN[A]claimed Memory deploys "semantic + user-preference strategies". The semantic strategy is added only whenUSE_LONG_TERM_MEMORY=true, which no profile sets — so every guided run was told it got something it didn't.MODULE_EXPLAIN[4]claimed module 4 federates your enterprise IdP and creates 3LO + M2M providers. By default it creates only the gateway M2M provider: federation needsIDP_TYPEset to a non-cognito value (the prompt defaults to cognito), and each 3LO provider needs its client id supplied.check_prereqstreats it as optional (images build in CodeBuild). Corrected, and added bash 4+ and thepython3.13name, which it omitted.Draft errors caught before they shipped
deploy --profilerunscdk deploy --all, not the profile's module sequence ·invoke.py --toolsasks the gateway, not the agent — and the default orchestrator has no tools, so "what tools do you have?" was a misleading first prompt ·security-focusedrequires ORG_ID · A2A runtimes report protocolA2A, notHTTP· the JWT-verification section applies per-pattern and never to the orchestrator · missing gateway tools are silent in only two conditions, while an AccessDenied on the vault secret fails the invoke outright ·test_memory.pyuses local credentials so it cannot verify the runtime role.Verified
check-workshop-flow.shpasses — the narration is sed-extracted, so theMODULE_EXPLAINedits had to stay one physical line each; confirmed the dry run prints the new module 4 and A text.check-deploy-config.shpasses; pytest 99 passed; shellcheck unchanged (2 pre-existing findings).