

Also from Kynth Studios


Also from Kynth Studios


Also from Kynth Studios
123456## Context78This instruction file applies to data science notebooks, ML pipeline code, Glue ETL jobs, and AI/LLM application code on AWS. The AWS data platform follows a Bronze/Silver/Gold lakehouse pattern. All ML models must be version-controlled in SageMaker Model Registry. All LLM integrations must implement output guardrails.910---1112## Data Lake Architecture (Bronze / Silver / Gold)1314| Layer | S3 Prefix | Format | Purpose | Retention |15|-------|-----------|--------|---------|----------|16| **Bronze** | `s3://{bucket}/bronze/{source}/{date}/` | Raw (JSON, CSV, Parquet) | Immutable raw ingestion | 7 years |17| **Silver** | `s3://{bucket}/silver/{domain}/{date}/` | Parquet, partitioned | Cleaned, validated, normalised | 3 years |18| **Gold** | `s3://{bucket}/gold/{product}/{date}/` | Parquet, aggregated | Business-ready analytics | 1 year |1920- **Never overwrite Bronze** — Bronze is immutable; always append21- **Partition by date** (`year=YYYY/month=MM/day=DD`) for time-series data22- **Register all tables** in Glue Data Catalog with schemas23- **Apply Lake Formation permissions** — no direct S3 bucket policies for data access2425---2627## Glue ETL Standards2829```python30import sys31from awsglue.context import GlueContext32from awsglue.utils import getResolvedOptions33from pyspark.context import SparkContext3435args = getResolvedOptions(sys.argv, ['JOB_NAME', 'source_database', 'target_bucket', 'target_prefix'])36sc = SparkContext()37glueContext = GlueContext(sc)38logger = glueContext.get_logger()3940# CORRECT: Parameterised, no hardcoded paths41source_database = args['source_database']42target_path = f"s3://{args['target_bucket']}/{args['target_prefix']}"43```4445- **Parameterise all jobs** — no hardcoded bucket names, table names, or dates46- **Log record counts** before and after transformations for data quality auditing47- **Use DynamicFrame → DataFrame → DynamicFrame** pattern for complex transformations48- **Handle bad records** explicitly — use `ResolveChoice` and rejection sinks4950---5152## SageMaker Standards5354### Notebooks (SageMaker Studio)5556- **Structure notebooks** as: Imports → Data Loading → EDA → Feature Engineering → Model/Export57- **Parameterise cell inputs** using Papermill parameters for automated execution58- **Register features** in SageMaker Feature Store for reuse across models59- **Store all artefacts in S3** — never rely on notebook instance ephemeral storage6061### Training Jobs6263```python64from sagemaker.estimator import Estimator6566estimator = Estimator(67 image_uri=training_image_uri,68 role=sagemaker_role,69 instance_type='ml.m5.xlarge',70 instance_count=1,71 use_spot_instances=True, # Up to 90% cost saving72 max_wait=7200,73 output_path=f's3://{bucket}/models/',74 hyperparameters={75 'epochs': 10,76 'learning-rate': 0.001,77 },78)79```8081- **Use Spot Instances** for training jobs (non-time-critical) — up to 90% cost reduction82- **Enable SageMaker Experiments** tracking on all training jobs83- **Version all models** in Model Registry with: training data URI, metrics, approval status8485### Model Deployment8687- **`PendingManualApproval`** for model registry entries — no automatic prod promotion88- **Enable Model Monitor** on all production endpoints for data drift and model quality89- **Set auto-scaling** — never fixed-instance production endpoints90- **A/B test** new model versions with production variant weights before full cutover9192---9394## Amazon Bedrock / LLM Standards9596### Model Invocation9798```python99import boto3, json100101bedrock = boto3.client('bedrock-runtime', region_name='eu-west-1')102103def invoke_claude(messages: list, max_tokens: int = 1000, system: str = "") -> str:104 body = {105 "anthropic_version": "bedrock-2023-05-31",106 "max_tokens": max_tokens,107 "system": system,108 "messages": messages,109 }110 response = bedrock.invoke_model(111 modelId="anthropic.claude-3-5-sonnet-20241022-v2:0",112 body=json.dumps(body),113 )114 return json.loads(response['body'].read())['content'][0]['text']115```116117### Safety Non-Negotiables118119- **Never log full prompts** containing user PII — log token count, latency, model ID only120- **Always implement Bedrock Guardrails** for customer-facing features121- **Always set `max_tokens`** — unbounded generation is a cost and safety risk122- **Always validate structured outputs** against JSON schema before downstream use123- **Never pass user input directly into system prompts** — sanitise to prevent prompt injection124125### RAG Pipeline Checklist126127- [ ] Chunking strategy documented (chunk size, overlap, splitting method)128- [ ] Embedding model version pinned (re-index if model changes)129- [ ] Retrieval evaluated with RAGAS: faithfulness ≥ 0.7, answer relevance ≥ 0.7130- [ ] Guardrails configured for topic blocking and PII filtering131- [ ] All LLM calls logged to CloudWatch with token count and latency132133---134135## Responsible AI Controls136137| Control | Implementation |138|---------|---------------|139| Bias monitoring | SageMaker Clarify on training data and model predictions |140| Explainability | SHAP values via SageMaker Clarify |141| Hallucination detection | Groundedness check via Bedrock Guardrails |142| PII handling | Amazon Comprehend PII detection before LLM processing |143| Audit trail | All model invocations logged to CloudWatch + S3 |144
One repository carrying more than one format is the comparison this product exists for: does anyone actually write different content in each file, or is one a copy of the other?
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| doubts-suplab/eeik-bootstrap.clinerules/golden-rules.md · 1 | Cline rules | gitsecuritydo-not | 61/100 | today | |
| doubts-suplab/eeik-bootstrap.clinerules/project.md · 1 | Cline rules | teststylegit | 63/100 | today | |
| doubts-suplab/eeik-bootstrap.cursor/rules/architecture.mdc · 1 | Cursor rules | do-not | 52/100 | today | |
| doubts-suplab/eeik-bootstrap.cursor/rules/capabilities.mdc · 1 | Cursor rules | teststylegit | 58/100 | today | |
| doubts-suplab/eeik-bootstrap.cursor/rules/golden-rules.mdc · 1 | Cursor rules | gitsecuritydo-not | 61/100 | today | |
| doubts-suplab/eeik-bootstrap.cursor/rules/python.mdc · 1 | Cursor rules | lint-formatstyletypesapi+1 | 77/100 | today | |
| doubts-suplab/eeik-bootstrap.cursor/rules/security.mdc · 1 | Cursor rules | security | 39/100 | today | |
| doubts-suplab/eeik-bootstrap.github/copilot-instructions.md · 1 | Copilot instructions | lint-formatstyletesting-strategygit+2 | 54/100 | today | |
| doubts-suplab/eeik-bootstrap.github/instructions/a2a-protocol.instructions.md · 1 | Copilot instructions | styleagent-behaviour | 48/100 | today | |
| doubts-suplab/eeik-bootstrap.github/instructions/ai-governance.instructions.md · 1 | Copilot instructions | stylearchdo-notagent-behaviour | 61/100 | today | |
| doubts-suplab/eeik-bootstrap.github/instructions/angular.instructions.md · 1 | Copilot instructions | teststyletypestesting-strategy+4 | 69/100 | today | |
| doubts-suplab/eeik-bootstrap.github/instructions/architecture-governance.instructions.md · 1 | Copilot instructions | testlint-formatstylegit+4 | 65/100 | today | |
| doubts-suplab/eeik-bootstrap.github/instructions/autogen.instructions.md · 1 | Copilot instructions | typessecurityagent-behaviour | 50/100 | today | |
| doubts-suplab/eeik-bootstrap.github/instructions/aws-architecture.instructions.md · 1 | Copilot instructions | styletypessecurityperformance | 58/100 | today | |
| doubts-suplab/eeik-bootstrap.github/instructions/cdk-terraform.instructions.md · 1 | Copilot instructions | teststylearchtypes+2 | 96/100 | today | |
| doubts-suplab/eeik-bootstrap.github/instructions/cicd.instructions.md · 1 | Copilot instructions | stylesecuritydeploymentdo-not+1 | 65/100 | today | |
| doubts-suplab/eeik-bootstrap.github/instructions/containerisation.instructions.md · 1 | Copilot instructions | buildstylesecuritydo-not | 77/100 | today | |
| doubts-suplab/eeik-bootstrap.github/instructions/crewai.instructions.md · 1 | Copilot instructions | styleagent-behaviour | 48/100 | today | |
| doubts-suplab/eeik-bootstrap.github/instructions/data-engineering.instructions.md · 1 | Copilot instructions | teststyletypesgit+5 | 69/100 | today | |
| doubts-suplab/eeik-bootstrap.github/instructions/deployment.instructions.md · 1 | Copilot instructions | teststylegitdeployment | 77/100 | today |
Same format, overlapping stack, ranked by quality.
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| HerringtonDarkholme/megarepo.github/copilot-instructions.md · 17 | Copilot instructions | setupbuildtestlint-format+7 | 100/100 | 14 days ago | |
| louislam/uptime-kuma.github/copilot-instructions.md · 90k | Copilot instructions | setupbuildtestlint-format+9 | 100/100 | 14 days ago | |
| chihebnabil/lovable-boilerplate.github/instructions/global.instructions.md · 65 | Copilot instructions | buildlint-formatstylearch+4 | 100/100 | 14 days ago | |
| pytorch/pytorch.github/copilot-instructions.md · 102k | Copilot instructions | setupbuildteststyle+5 | 100/100 | 14 days ago | |
| JCodesMore/ai-website-cloner-template.github/copilot-instructions.md · 32k | Copilot instructions | buildlint-formatstylearch+3 | 97/100 | 7 days ago | |
| bagisto/bagisto.github/copilot-instructions.md · 28k | Copilot instructions | setupbuildteststyle+5 | 97/100 | 14 days ago | |
| hiyouga/LlamaFactory.github/copilot-instructions.md · 74k | Copilot instructions | setupbuildtestlint-format+5 | 97/100 | 13 days ago | |
| darkmatter/nixmac.github/copilot-instructions.md · 25 | Copilot instructions | setupbuildtestlint-format+8 | 96/100 | 14 days ago |
A badge carrying the measured quality of the strongest agent config file in this repository, out of 100. It reads from this index every time somebody loads your page, so it changes when the measurement changes and there is nothing to keep up to date. Free, no account, and the value is not something you or we can set by hand.
[](https://rulestack.kynth.studio/configs/doubts-suplab-eeik-bootstrap-github-instructions-aws-data-ml-ai-instructions)Would rather not hotlink us? Every badge is also served in shields.io’s endpoint schema, so shields renders the image and your readers never talk to our domain:
Published by Toolproof, the masthead over this index and eight others. The method behind the number is at toolproof.kynth.studio/methodology, and the whole thing is readable as JSON with no key at /api.