Files
claude-resume-kit/resume_builder/canonical/claims.json
T
dennisthiessenandClaude Opus 5 fc5f3e49ba fix: review findings F03-F06 — quotas, rule hierarchy and a validator that checks
F03 — application records
- Quota already removed with F02's tracker; verified uncapped and that
  "interview reached" survives a later withdrawal.
- Aker BP: application date confirmed 2026-07-29 by the user, settling the
  one-day conflict. Its Adjacent-despite-79 classification is kept, NOT
  reclassified: the user does not remember the rationale and judged it
  immaterial on a closed role, and silently reclassifying to make the
  arithmetic tidy is the exact objection the review raised. Recorded as an
  explicit override reason with a rubric version instead.

F04 — rule hierarchy
- Three levels stated in AGENTS.md and CLAUDE.md: immutable evidence rules,
  standing user preferences, market/employer presentation.
- Deliverables separated from QA. The .tex stays the artefact of record; you
  still compile, into the application's own output/ folder, because the user
  cannot approve what he cannot open.
- `resume_reference.md` said "Capgemini/Bundeswehr: include only when directly
  relevant", contradicting the standing never-include rule. Split and fixed.

F05 — a green validator now means something
- Per-claim `forbidden` wording is enforced. 14 of 26 claims carried such a
  list and NONE of it was checked, which is why "owned the full ML lifecycle"
  passed. Matching tolerates inserted adjectives: the real regression read
  "Built a decentralized Data Mesh" and one word defeated the literal list.
- Added identity (e-mail/phone), employer-date, placeholder and
  document-exclusion checks. Capgemini's omission rule now has a canonical
  home in claims.json instead of living only in memory and config.md.
- Registered Groovy and Snowflake as forbidden skills. Both were absent from
  claims.json entirely, so "forbidden" existed in prose with nothing enforcing
  it.
- PASS no longer reads as a truth certificate: it prints what it did not check
  — scope implications, bullet-to-claim support, whether a number is real.

F06 — the scanner stopped fighting the documents
- LaTeX comments are no longer claims; `% never claim Terraform` was a finding
  before, which taught the workflow to write around the checker.
- Markup, accent macros and umlauts are normalized, so `\textbf{Snow}flake`
  cannot smuggle a forbidden skill past a substring test and
  `Universit\"at der Bundeswehr M\"unchen` is recognisably a school.
- Honest denials pass in English and German.
- The triple-list cadence hint knew only English "and", so it silently did
  nothing on every German package. Advisory only, and now labelled as such.

Verification
- The six counter-proofs from the report are caught: 9 errors on one synthetic
  document, where the old scanner found none.
- All six packages built under current rules scan clean — SBB, NVIDIA, RUAG,
  Kdo Cy, Citadel, Aker BP. Four false positives of my own were found and fixed
  on the way there; each is now a regression test.
- 13 older packages do report findings. Those look like genuine historical
  violations and are deliberately NOT fixed here: F17 governs archives and they
  must not be silently rewritten.
- `tests/test_document_scanner.py` added. Full suite 31/31 pass.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Qej5SBvhcbGXHwLqNWiskM
2026-09-11 19:33:24 +02:00

739 lines
31 KiB
JSON

{
"schema_version": 1,
"last_verified": "2026-08-27",
"authority": {
"description": "Machine-readable source of truth for all future application documents.",
"precedence": [
"canonical claims",
"config corrections",
"verified references",
"experience files",
"bundles"
],
"raw_extractions_are_immutable": true,
"historical_outputs_are_never_sources": true
},
"identity": {
"name": "Dennis Thiessen",
"degree_suffix": "M.Eng.",
"email": "dennis@thiessen.io",
"phone": "+41 795 955 585",
"location": "Bern, Switzerland",
"linkedin": "linkedin.com/in/dennis-thiessen",
"citizenship": "German citizen (EU)",
"swiss_permit": "B residence permit",
"swiss_work_authorization": "Authorized to work in Switzerland; no visa or employer sponsorship required",
"work_authorization_source": "User-confirmed 2026-07-27",
"resume_usage": "Work authorization is optional in the header; mention the B permit or no-sponsorship status when it resolves recruiter uncertainty or the application asks for it",
"languages": {
"German": "native",
"English": "fluent",
"Norwegian": "basic",
"Russian": "basic"
},
"forbidden_personal_data": [
"date of birth",
"marital status",
"gender",
"children"
]
},
"education": [
{
"id": "EDU-MENG",
"degree": "M.Eng. Computer Aided Engineering",
"display_focus": "Software Design & Engineering",
"institution": "Universitat der Bundeswehr Munchen",
"start": "2012-04",
"end": "2013-10",
"thesis_institution": "Tongji University, Shanghai",
"thesis_title": "Development of a Web-Based Remote Fault Diagnosis System",
"final_grade": "1.6 (German scale, 1.0 best / 4.0 lowest pass) -- user-confirmed 2026-08-26",
"final_grade_us_4pt": "3.4 -- modified Bavarian formula, US = 1 + 3*(4.0-G)/(4.0-1.0), which simplifies to 5.0 - G. Use ONLY when a form demands a 4.0-scale GPA; always state the German scale alongside it. Never present as a natively-awarded GPA.",
"thesis_grade": "1.0",
"thesis_relative_grade": "ECTS grade B; official certificate on file. B is formally the next 25% after the top 10%, i.e. the 10-35% band -- so the correct and safe phrasing is 'top 35%' (user-confirmed 2026-08-26). Do NOT write 'top 30%' or 'top 25%': B is a band, not a point, and narrowing it overstates the standing. The original 'top 35%' in this record was correct; a briefly-considered 30% was the error.",
"thesis_methods": "Verified against the thesis PDF 2026-08-02. Domain: vibration-based condition monitoring of CNC machine tools (piezoelectric accelerometers on spindle, tool rest, lathe body). Features: speed, load and the dimensionless waveform, peak, pulse, margin and kurtosis indices. Surveyed CBR, PSO, RBR and ANN; SELECTED a hybrid of rule-based reasoning (interpretable thresholds) plus a 7-10-3 feed-forward ANN (faultstates green/yellow/red) to handle noisy data that static rules cannot classify. Extensible plug-in architecture for swappable diagnosis methods and data collectors. Java/GWT client-server on MySQL. Evaluation measured throughput and latency, NOT model accuracy: the pipeline sustained ~500 samples/s against tri-axial vibration sensors delivering 72.9 kSPS, so the thesis concluded data reduction, filtering or batch scheduling is required for real-time use.",
"thesis_limits": "PSO was SURVEYED ONLY and NOT used in the implementation -- never claim it as an applied method. No real operational data: training data came from a cited thesis, test data was modified plus a random generator. No model-accuracy figures exist. Back-propagation retraining was listed as future work, not implemented. Frame as a methods prototype/framework, never as a validated production predictive-maintenance system.",
"transcripts_language": "English-language originals available for B.Eng. and M.Eng."
},
{
"id": "EDU-BENG",
"degree": "B.Eng. Information and Telecommunication Technologies",
"institution": "Universitat der Bundeswehr Munchen",
"start": "2009-10",
"end": "2012-10",
"final_grade": "2.4 (German scale, 1.0 best / 4.0 lowest pass) -- user-confirmed 2026-08-26",
"final_grade_us_4pt": "2.6 -- modified Bavarian formula (5.0 - G). Supply ONLY when a form requires a bachelor GPA; leave blank where optional. Always state the German scale alongside it, because the conversion makes German degrees read weaker to a US audience than they are: 2.4 is a solid 'gut'. Never present as a natively-awarded GPA.",
"grade_output_rule": "Neither degree grade goes on the resume or in a cover letter by default. Industry resumes omit grades; the M.Eng. thesis grade 1.0 is the only figure worth surfacing, and only where academic performance is genuinely valued. These fields exist for application-form GPA questions and credential checks."
}
],
"employment": [
{
"id": "SWISSCOM",
"employer": "Swisscom (Schweiz) AG",
"location": "Bern, Switzerland",
"display_title": "Staff Data, Analytics & AI Engineer",
"start": "2023-10",
"end": "present",
"title_history": [
{
"title": "Senior Data, Analytics & AI Engineer",
"start": "2023-10",
"end": "2025-04"
},
{
"title": "Staff Data, Analytics & AI Engineer",
"start": "2025-04",
"end": "present"
}
]
},
{
"id": "BOSCH",
"employer": "Robert Bosch Semiconductor Manufacturing Dresden GmbH",
"location": "Dresden, Germany",
"official_title": "Engineer / Senior Engineer, Data Analysis",
"display_title": "Senior Data Engineer, Data Analysis",
"display_title_note": "experience_bosch.md sanctions title flexibility for this role: '(Senior) Data Engineer' or '(Senior) Data Analysis Engineer' depending on the JD. 'Senior Data Engineer, Data Analysis' is the user's own preferred wording, confirmed 2026-08-27. official_title stays the formal combined string on the Zeugnis.",
"start": "2020-02",
"end": "2022-12",
"title_history": [
{"title": "Data Engineer, Data Analysis", "start": "2020-02", "end": "2021-01"},
{"title": "Senior Data Engineer, Data Analysis", "start": "2021-01", "end": "2022-12"}
],
"title_history_source": "LinkedIn-confirmed, recorded in experience_bosch.md; user-confirmed 2026-08-27 while reviewing the RUAG C5I resume. Added because claims.json previously carried only the combined official_title with no promotion date, which made a Swisscom-style 'Beforderung <date>' line unwritable from the canonical file alone."
},
{
"id": "FRAUNHOFER",
"employer": "Fraunhofer-Center for Maritime Logistics and Services CML",
"location": "Hamburg, Germany",
"official_title": "Wissenschaftlicher Mitarbeiter",
"display_title": "Research Software Engineer",
"start": "2018-09",
"end": "2019-10"
},
{
"id": "VIZRT",
"employer": "Vizrt",
"location": "Bergen, Norway",
"official_title": "Test Automation Engineer",
"display_title": "Test Automation / DevOps Engineer",
"start": "2017-07",
"end": "2018-05"
},
{
"id": "GENERALI",
"employer": "Generali Deutschland Informatik Services GmbH",
"location": "Hamburg, Germany",
"display_title": "IT Consultant",
"start": "2015-05",
"end": "2017-06"
},
{
"id": "CAPGEMINI",
"employer": "Capgemini Deutschland GmbH",
"location": "Hamburg, Germany",
"display_title": "Software Engineer",
"start": "2014-11",
"end": "2015-05"
},
{
"id": "BUNDESWEHR",
"employer": "Bundeswehr (German Armed Forces)",
"location": "Germany",
"display_title": "Officer Candidate / Officer (Second Lieutenant at separation)",
"start": "2008-07",
"end": "2014-11",
"source": "User confirmation 2026-07-10; thiessen_linkedin_profile.md",
"last_verified": "2026-08-27"
}
],
"claims": [
{
"id": "SW-1",
"scope": "Primary engineer for pipelines in owned Fulfillment and Product Analysis domains; contributor to the wider company migration.",
"allowed_verbs": [
"migrated",
"implemented",
"contributed"
],
"forbidden": [
"led the migration of the legacy warehouse",
"sole technical lead",
"migrated the company warehouse",
"owned the full migration"
],
"metrics": "unverified"
},
{
"id": "SW-2",
"scope": "Component Owner for business-critical Fulfillment ETL pipelines, including operation, data quality, governance, incidents and on-call obligations.",
"allowed_verbs": [
"own",
"operate",
"maintain",
"serve"
],
"metrics": "unverified"
},
{
"id": "SW-3",
"scope": "Build and operate Python data applications on Kubernetes with GitLab CI/CD within the team environment.",
"allowed_verbs": [
"build",
"deploy",
"operate"
],
"metrics": "unverified"
},
{
"id": "SW-4",
"scope": "Deliver data products, dashboards and analyses with internal B2B stakeholders and product owners; not external consulting or strategic-account delivery.",
"allowed_verbs": [
"deliver",
"translate",
"partner",
"support"
],
"forbidden": [
"customer-embedded delivery",
"strategic customer delivery",
"C-suite advisor"
],
"metrics": "unverified"
},
{
"id": "SW-5",
"scope": "Mandatory rotating team Security Champion role for 2025/2026 only; not an award, certification or multi-year distinction.",
"allowed_verbs": [
"serve"
],
"forbidden": [
"3 consecutive years",
"2023-2026",
"Security Champion x3",
"owning DevSecOps compliance"
],
"metrics": "100 hours of training and an assessment are source-backed; use only when relevant"
},
{
"id": "SW-6",
"scope": "Hands-on PySpark use at Swisscom; scale and performance metrics are not verified.",
"allowed_verbs": [
"use",
"develop",
"process"
],
"metrics": "unverified"
},
{
"id": "SW-7",
"scope": "Build governed data products and onboard sources within Swisscom's company-wide Data Mesh; never claim ownership or construction of the shared mesh/platform. Atlassian Compass is the metadata/catalogue platform used for data-product metadata and lineage (user-confirmed 2026-07-29); Dennis uses it as a practitioner and does not administer or own the tooling.",
"allowed_verbs": [
"build",
"model",
"onboard",
"contribute",
"document",
"maintain"
],
"forbidden": [
"built a Data Mesh",
"built the Data Mesh",
"built AWS Data Mesh",
"own the AWS data platform",
"own the data platform",
"own Atlassian Compass",
"administered Compass",
"rolled out Compass"
],
"metrics": "unverified"
},
{
"id": "SW-8",
"scope": "Configured domain-grounded LLM assistants in a Swisscom-owned web interface by selecting available models and supplying curated knowledge. Separate exposure includes LiteLLM API use, custom GPTs, Copilot and Kiro.",
"allowed_verbs": [
"configured",
"used",
"integrated"
],
"forbidden": [
"built production LLM systems",
"deployed LLM systems",
"built LangChain",
"agent orchestration",
"formal LLM evaluation",
"fine-tuned models"
],
"metrics": "unverified"
},
{
"id": "BS-1",
"scope": "Designed and executed integration of containerized ML inference into a 24/7 semiconductor production environment; model-development ownership is not established. Toolchain includes Docker, Kubernetes and Ansible - Ansible use at Bosch was intensive (user-confirmed 2026-08-27) and extended to configuration management and infrastructure automation beyond this single integration, making it standalone Infrastructure-as-Code evidence.",
"allowed_verbs": [
"integrated",
"containerized",
"deployed",
"orchestrated"
],
"forbidden": [
"trained the image classification model",
"owned the full ML lifecycle"
],
"metrics": "qualitative reduction in manual classification is source-backed; exact amount unverified"
},
{
"id": "BS-2",
"scope": "Developed data services in Python, Java and C# over Oracle and Hadoop/Impala for internal analysis teams. Data types worked on (user-confirmed 2026-08-02): semiconductor fab sensor and process data -- defect management records, wafer inspection images, and electrical parameters from Process Control Monitoring (PCM). Relevant as genuine industrial sensor/asset-data experience.",
"allowed_verbs": [
"developed",
"built"
],
"metrics": "unverified"
},
{
"id": "BS-3",
"scope": "Confirmed Application Owner responsibilities for analytics applications and upstream pipelines, including SLOs, vendors, training and documentation.",
"allowed_verbs": [
"served",
"owned",
"managed",
"defined"
],
"metrics": "unverified"
},
{
"id": "BS-4",
"scope": "Built an ELK/Kafka anomaly-detection proof of concept and monitoring; not a company-wide observability platform.",
"allowed_verbs": [
"built",
"implemented",
"validated"
],
"forbidden": [
"built the observability platform",
"enterprise observability platform"
],
"metrics": "unverified"
},
{
"id": "BS-5",
"scope": "Co-owned the TIBCO Spotfire environment, built C# extensions and co-presented at TIBCO Analytics Forum 2022.",
"allowed_verbs": [
"co-owned",
"built",
"co-presented"
],
"metrics": "unverified"
},
{
"id": "BS-6",
"scope": "Administered and automated the Linux server estate underpinning fab analytics and ML workloads at Bosch (2020-2022): ML platform hosts, Docker hosts, backend services and the Ansible control path. Developed Ansible extensions, including a credential plugin that retrieved secrets from a password keystore and cached them locally to cut lookup volume and improve scalability and performance. Playbooks were version-controlled in Git and executed push-style from Jenkins/GitLab pipelines. User-confirmed 2026-08-27.",
"allowed_verbs": [
"administered",
"automated",
"developed",
"extended",
"operated",
"built"
],
"forbidden": [
"owned the fab's infrastructure",
"ran the datacenter",
"SRE role or title",
"GitOps",
"any server-count, uptime, SLA or scale figure - none is verified"
],
"metrics": "none verified; the credential-caching plugin reduced keystore lookups, amount unquantified"
},
{
"id": "FC-1",
"scope": "Set up Jenkins CI/CD and contributed to SCEDAS development and maintenance.",
"allowed_verbs": [
"set up",
"developed",
"maintained"
],
"metrics": "unverified"
},
{
"id": "FC-2",
"scope": "Contributed ML/NLP components to ARTUS; no publication or model-training ownership.",
"allowed_verbs": [
"contributed",
"implemented",
"supported"
],
"forbidden": [
"led ARTUS",
"trained the speech model"
],
"metrics": "unverified"
},
{
"id": "FC-3",
"scope": "Developed containerized microservices for the MISSION research platform.",
"allowed_verbs": [
"developed",
"built"
],
"metrics": "unverified"
},
{
"id": "VZ-1",
"scope": "Contributed Python and C++ engineering to a distributed video-transcoding backend. Named broadcasters are product context, not direct delivery claims.",
"allowed_verbs": [
"developed",
"engineered",
"contributed"
],
"forbidden": [
"for CNN, BBC and Al Jazeera",
"delivered to CNN",
"customer-embedded"
],
"metrics": "unverified"
},
{
"id": "VZ-2",
"scope": "Developed automated audio/video integration tests and connected quality gates to CI/CD.",
"allowed_verbs": [
"developed",
"automated",
"integrated"
],
"metrics": "unverified"
},
{
"id": "GN-1",
"scope": "Introduced BDD through a proof of concept and held technical responsibility for test automation, training and Jenkins jobs.",
"allowed_verbs": [
"introduced",
"owned",
"trained",
"administered"
],
"metrics": "unverified"
},
{
"id": "GN-2",
"scope": "Developed UIPath RPA proofs of concept and acted as an internal contact.",
"allowed_verbs": [
"developed",
"served"
],
"metrics": "unverified"
},
{
"id": "GN-3",
"scope": "Developed Java/J2EE workflow application features and contributed to integration proofs of concept.",
"allowed_verbs": [
"developed",
"contributed",
"migrated"
],
"metrics": "unverified"
},
{
"id": "BW-1",
"scope": "Completed officer candidate training and officer school during six years of service in the German Armed Forces (Bundeswehr), leaving service as Second Lieutenant. This establishes military and organisational context only; no technical military role, command scope, deployment, NATO service or clearance is established.",
"ownership": "Individual service and completed training.",
"allowed_verbs": [
"completed",
"served",
"left service"
],
"forbidden": [
"current or former security clearance",
"NATO service",
"combat role or deployment",
"technical AI, ICT or cyber work for the military",
"command responsibility or leadership outcomes not explicitly verified"
],
"metrics": "Six years of service and separation as Second Lieutenant are verified; no performance or command-scope metric is established.",
"source": "User confirmation 2026-07-10; thiessen_linkedin_profile.md",
"last_verified": "2026-08-27"
},
{
"id": "PP-1",
"scope": "PERSONAL PROJECT (user-supplied 2026-08-25), not professional work. A self-hosted, single-user investing/signal platform Dennis built for himself: ingests daily US-equity prices, fundamentals and sentiment (LLM-assisted); runs one long-only cross-sectional momentum book (top-quintile residual 12-1 momentum, ATR stop/trail, max 15 concurrent names) through scheduled scan and backtest pipelines; surfaces gated setups in a web dashboard plus Telegram alerts. Legitimate use: evidence of self-directed trading-domain fluency and of an end-to-end ingestion/backtest/alerting build outside work. Full-ownership verbs ARE correct here -- unlike his employer work, this is genuinely solo.",
"allowed_verbs": [
"built",
"developed",
"designed"
],
"forbidden": [
"any trading track record, PnL, return, Sharpe or backtest performance figure -- none is verified and none may ever be quoted",
"calling it distributed, scalable, production or multi-user -- it is single-user and self-hosted",
"implying professional quantitative, trading, finance-domain or investment-management experience",
"presenting it as employer work or omitting that it is a personal project"
],
"metrics": "unverified"
},
{
"id": "PP-2",
"scope": "Udacity 'AI for Trading' Nanodegree, completed self-study (user-supplied 2026-08-25). Covers quantitative trading fundamentals -- factor construction, alpha signals, backtesting. Pairs with PP-1 as the formal half of self-directed domain grounding.",
"allowed_verbs": [
"completed"
],
"forbidden": [
"listing it as an academic degree, professional certification or quant credential",
"presenting it as equivalent to quantitative research or trading experience",
"using it to qualify for quant, trader, researcher or portfolio-management roles"
],
"metrics": "unverified"
},
{
"id": "PP-3",
"scope": "PERSONAL PROJECT (user-supplied 2026-08-27), not employer work. A self-hosted Debian server Dennis has operated for ~10 years and administers and hardens himself, running nginx, a mail server, Nextcloud, a VPN server, Docker services and Bitwarden. This is the primary evidence for hands-on Linux administration, system hardening and security configuration, and it is current and continuous - unlike the Bosch Linux work, which ended in 2022. User states he genuinely enjoys this kind of work, including physical infrastructure.",
"allowed_verbs": [
"operate",
"administer",
"harden",
"run",
"maintain",
"self-host"
],
"forbidden": [
"calling it enterprise, production, multi-user or business-critical infrastructure",
"implying professional SRE, sysadmin or hosting employment",
"any uptime, availability, SLA, user-count or scale figure - none is verified",
"presenting it as employer work or omitting that it is self-hosted and personal",
"using it as evidence of datacenter or physical-infrastructure experience"
],
"metrics": "none; ~10 years of continuous operation is the only quantity, and it is self-reported"
}
],
"skills": [
{
"name": "Python",
"evidence": "production-current",
"output": "allowed"
},
{
"name": "SQL",
"evidence": "production-current",
"output": "allowed"
},
{
"name": "PySpark",
"evidence": "production-current",
"output": "allowed"
},
{
"name": "Kafka",
"evidence": "production-current",
"output": "allowed"
},
{
"name": "Airflow",
"evidence": "production-current",
"output": "allowed"
},
{
"name": "AWS",
"evidence": "production-current",
"output": "allowed"
},
{
"name": "CloudFormation",
"evidence": "production-current",
"output": "allowed"
},
{
"name": "Atlassian Compass",
"evidence": "production-current",
"output": "allowed",
"note": "Metadata/catalogue platform for data-product metadata and lineage at Swisscom (user-confirmed 2026-07-29). Practitioner use only — do not claim administration, rollout or ownership. Satisfies 'or similar metadata/catalogue platform' phrasing; is NOT a substitute claim for Purview, Collibra or Alation, which remain unevidenced."
},
{
"name": "Kubernetes",
"evidence": "production-current-and-historical",
"output": "allowed"
},
{
"name": "Ansible",
"evidence": "production-historical",
"output": "allowed",
"note": "User-confirmed 2026-08-27: worked intensively with Ansible at Bosch (2020-2022) for configuration management and infrastructure automation, including the BS-1 ML-inference orchestration. Was absent from claims.json despite already appearing in experience_bosch.md BS-1 bullet variants. Counts as genuine Infrastructure-as-Code evidence alongside CloudFormation. Does NOT by itself license claiming Terraform (still unverified) or GitOps as a named practice (see gitops_pending)."
},
{
"name": "Linux administration",
"evidence": "production-historical-and-personal-current",
"output": "allowed",
"note": "User-confirmed 2026-08-27 and previously ABSENT from claims.json entirely. Professional: at Bosch (2020-2022) Linux servers carried everything - ML platform, Docker hosts, backend services, Ansible control - and he administered and automated them (see BS-6). Personal and current: a self-hosted Debian server he has run and hardened for ~10 years (see PP-3). Hardening and security configuration evidence leans on the personal side; say so rather than implying an employer mandate. Does NOT license claiming datacenter/physical infrastructure work, which remains a genuine gap."
},
{
"name": "Bash / shell scripting",
"evidence": "production-historical-and-personal-current",
"output": "allowed",
"note": "User-confirmed 2026-09-05 and previously ABSENT from claims.json entirely - the third gap of this shape after Ansible and Linux administration (both 2026-08-27). Evidence basis is the same as Linux administration: professional at Bosch 2020-2022 administering and automating the Linux server estate and the Ansible control path (BS-6), and personal and current on the self-hosted Debian server run for ~10 years (PP-3). Scope is ordinary operational shell work - scripting, automation glue and system administration. Does NOT license Groovy, which stays unverified and forbidden, and does NOT license any claim of systems-programming or kernel-level work."
},
{
"name": "Docker",
"evidence": "production-current-and-historical",
"output": "allowed"
},
{
"name": "Java",
"evidence": "production-historical",
"output": "allowed-with-context"
},
{
"name": "C#",
"evidence": "production-historical",
"output": "allowed-with-context"
},
{
"name": "C++",
"evidence": "production-historical-limited",
"output": "allowed-with-context"
},
{
"name": "JavaScript",
"evidence": "production-historical-limited",
"output": "allowed-with-context"
},
{
"name": "LiteLLM",
"evidence": "hands-on-current",
"output": "allowed-with-context"
},
{
"name": "custom GPTs",
"evidence": "hands-on-current",
"output": "allowed-with-context"
},
{
"name": "Kiro",
"evidence": "hands-on-current",
"output": "allowed-with-context"
},
{
"name": "Copilot",
"evidence": "hands-on-current",
"output": "allowed-with-context"
},
{
"name": "quantitative/systematic trading concepts",
"evidence": "coursework-and-personal-project",
"output": "allowed-with-context",
"note": "Udacity AI for Trading nanodegree (PP-2) plus the self-built momentum platform (PP-1): factor construction, cross-sectional/residual momentum, ATR stops, backtesting. Self-directed only — NO professional quant, trading or finance experience. Never list under a Professional Experience skills line without the personal-project context, and never as a quant qualification."
},
{
"name": "backtesting",
"evidence": "personal-project",
"output": "allowed-with-context",
"note": "PP-1 scheduled backtest pipelines, personal scale. Never quote a result or performance figure."
},
{
"name": "TensorFlow/Keras",
"evidence": "certification",
"output": "certification-context-only"
},
{
"name": "PyTorch",
"evidence": "certification",
"output": "certification-context-only",
"note": "IBM AI Engineering Professional Certificate (Coursera, 4 Jun 2020) includes the course \"Deep Neural Networks with PyTorch\"; certificate PDF verified 2026-08-27. Same footing as TensorFlow/Keras: certification context only, never presented as production or project experience."
},
{
"name": "TypeScript",
"evidence": "unverified",
"output": "forbidden"
},
{
"name": "FastAPI",
"evidence": "unverified",
"output": "forbidden"
},
{
"name": "Flask",
"evidence": "unverified",
"output": "forbidden"
},
{
"name": "Django",
"evidence": "unverified",
"output": "forbidden"
},
{
"name": "LangChain",
"evidence": "never-used",
"output": "forbidden"
},
{
"name": "LangGraph",
"evidence": "never-used",
"output": "forbidden"
},
{
"name": "LlamaIndex",
"evidence": "never-used",
"output": "forbidden"
},
{
"name": "formal model evaluation",
"evidence": "unverified",
"output": "forbidden"
},
{
"name": "LLM fine-tuning",
"evidence": "unverified",
"output": "forbidden"
},
{
"name": "Azure",
"evidence": "unverified",
"output": "forbidden"
},
{
"name": "GCP",
"evidence": "unverified",
"output": "forbidden"
},
{
"name": "Terraform",
"evidence": "unverified",
"output": "forbidden"
},
{
"name": "GitOps",
"evidence": "pending-user-clarification",
"output": "forbidden",
"note": "RESOLVED 2026-08-27, and the answer is NO. User confirmed: Ansible playbooks lived in Git, but execution was PUSH-based out of Jenkins/GitLab pipelines - there was no pull-based reconciliation agent (Argo CD, Flux). That is version-controlled, CI-driven infrastructure automation, not GitOps. The word stays forbidden in every document. The SUBSTANCE is writable and should be written: 'versionskontrollierte Infrastrukturautomatisierung mit Ansible aus Git, ausgefuehrt ueber Jenkins-/GitLab-Pipelines'. The Kdo Cy JD names 'Pull-GitOps' explicitly, so precision here is an asset, not a loss."
},
{
"name": "Groovy",
"evidence": "none",
"output": "forbidden",
"note": "Named in the NVIDIA JD alongside Bash and Python. Bash was confirmed and added 2026-09-05; Groovy was explicitly NOT - it stays unverified. Registered as a skill 2026-09-11 (review finding F05) so the document scanner can actually catch it: it was previously absent from claims.json entirely, which meant 'forbidden' existed only in prose and nothing enforced it."
},
{
"name": "Snowflake",
"evidence": "none",
"output": "forbidden",
"note": "Repeatedly named in target JDs (SBB, Snowflake Inc. reqs). The honest substitution is Teradata, Oracle, Redshift and Athena/Iceberg - see the SBB session file. Registered 2026-09-11 (review finding F05) for the same reason as Groovy. Note this forbids CLAIMING the skill; naming Snowflake as an employer or as a JD requirement in prose is not a claim, and the negation guard in the scanner allows an honest 'no Snowflake experience'."
}
],
"global_forbidden_output_patterns": [
"petabyte scale",
"petabyte-scale",
"own the AWS data platform",
"LangChain-based",
"customer-embedded delivery",
"formal model evaluation",
"3 consecutive years"
],
"document_exclusions": [
{
"term": "Capgemini",
"scope": "every resume, CV and cover letter",
"reason": "Standing user preference: six months only (Nov 2014 - May 2015); the user does not want the short-stay impression. The resulting gap in the visible chronology is INTENTIONAL and must never be 'fixed' or explained away. The visible record starts at Generali, May 2015, which is also what any 'over ten years' tenure wording is measured against.",
"applies_to_documents_only": true,
"note": "This is a DOCUMENT rule, not a conversation rule. If an interviewer asks directly what the first civilian role was, naming it plainly is correct - declining to name a former employer reads worse than a six-month stay.",
"source": "User-confirmed 2026-08-27 after it regressed into the RUAG C5I draft; given a canonical home 2026-09-11 (review finding F05), having previously lived only in memory and config.md."
}
]
}