chat-with-your-workload-nextjs
Chat with your AWS environment ๐
Install / Use
npx skills add moritalous/chat-with-your-workload-nextjsInstalls into whichever agent you are using.
Amazon Q Rules
Amazon Q Developer rules
Quality Score
Category
Content & MediaSupported Platforms
Our assessment of chat-with-your-workload-nextjs
chat-with-your-workload-nextjs scores 54/100 on our quality scale, 1142nd of 1,175 Content & Media skills we index.
Its Amazon Q Rules is 8.7 KB long, lightly structured (1 heading) with 17 code examples: a thorough specification that gives an agent plenty to work with.
It has no GitHub stars yet, so there is no community track record; judge it on its content.
Maintenance, license and trust
- We could not determine when the repository was last updated.
- Our last check on 2026-10-20 found the source still online.
- No license is declared. By default that means all rights are reserved: you can read it, but reusing or redistributing it is not clearly permitted. Ask the author before building on it commercially.
- Its trust signals score 68/100, with 3 cautions from licensing, adoption, age or documentation. These come from repository metadata, not a code audit โ read the skill file before letting an agent act on it.
Safety scan
No issues foundOur scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful.
AI review by kimi-k2.7-code on 2026-09-24. Automated pattern scan on 2026-09-24. It catches known dangerous patterns, not every risk โ read a skill before letting an agent act on it.
chat-with-your-workload-nextjs compared with similar skills
All 4 of these similar skills score higher than chat-with-your-workload-nextjs; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| chat-with-your-workload-nextjs (this skill)by moritalous | 54 | 0 | โ | Amazon Q Rules |
| headroomby headroomlabs-ai | 100 | 78.9k | today | CLAUDE.md |
| siyuanby siyuan-note | 100 | 47.1k | today | MCP Server |
| rufloby ruvnet | 100 | 81.0k | today | MCP Server |
| changelog-videoby heygen-com | 100 | 76.6k | 4d ago | SKILL.md |
Frequently asked questions
- How do I install chat-with-your-workload-nextjs?
- Run
npx skills add moritalous/chat-with-your-workload-nextjs. The install tabs above show the steps for each supported agent. - Which AI agents does chat-with-your-workload-nextjs work with?
- It is written for Amazon Q, as a Amazon Q Rules file. Other agents that read the same format can often use it too.
- Is chat-with-your-workload-nextjs safe to use?
- Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful. It declares no license and scores 68/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is chat-with-your-workload-nextjs still maintained?
- We could not determine when the repository was last updated.
Skill content
View source on GitHubAMPLIFYRULES
title: Modeling relationships - AWS Amplify Gen 2 Documentation source: https://docs.amplify.aws/typescript/build-a-backend/data/data-modeling/relationships/ framework: typescript lastModified: 2024-10-21T23:11:46.997Z
WHEN MODELING APPLICATION DATA, YOU OFTEN NEED TO ESTABLISH RELATIONSHIPS BETWEEN DIFFERENT DATA MODELS. IN AMPLIFY DATA, YOU CAN CREATE ONE-TO-MANY, ONE-TO-ONE, AND MANY-TO-MANY RELATIONSHIPS IN YOUR DATA SCHEMA. ON THE CLIENT-SIDE, AMPLIFY DATA ALLOWS YOU TO LAZY OR EAGER LOAD OF RELATED DATA.
const schema = a
.schema({
Member: a.model({
name: a.string().required(), // 1. Create a reference field teamId: a.id(),
// 2. Create a belongsTo relationship with the reference field
team: a.belongsTo('Team', 'teamId'),
}),
Team: a.model({
mantra: a.string().required(), // 3. Create a hasMany relationship with the reference field
// from the `Member`s model.
members: a.hasMany('Member', 'teamId'),
}),
})
.authorization(allow => allow.publicApiKey());
CREATE A "HAS MANY" RELATIONSHIP BETWEEN RECORDS
const { data: team } = await client.models.Team.create({
mantra: 'Go Frontend!',
});
const { data: member } = await client.models.Member.create({
name: 'Tim',
teamId: team.id,
});
UPDATE A "HAS MANY" RELATIONSHIP BETWEEN RECORDS
const { data: newTeam } = await client.models.Team.create({
mantra: 'Go Fullstack',
});
await client.models.Member.update({ id: 'MY_MEMBER_ID', teamId: newTeam.id });
DELETE A "HAS MANY" RELATIONSHIP BETWEEN RECORDS IF YOUR REFERENCE FIELD IS NOT REQUIRED, THEN YOU CAN "DELETE" A ONE-TO-MANY RELATIONSHIP BY SETTING THE RELATIONSHIP VALUE TO NULL.
await client.models.Member.update({ id: 'MY_MEMBER_ID', teamId: null });
LAZY LOAD A "HAS MANY" RELATIONSHIP
const { data: team } = await client.models.Team.get({ id: 'MY_TEAM_ID' });
const { data: members } = await team.members();
members.forEach(member => console.log(member.id));
EAGERLY LOAD A "HAS MANY" RELATIONSHIP
const { data: teamWithMembers } = await client.models.Team.get(
{ id: 'MY_TEAM_ID' },
{ selectionSet: ['id', 'members.*'] }
);
teamWithMembers.members.forEach(member => console.log(member.id));
const schema = a
.schema({
Cart: a.model({
items: a.string().required().array(),
// 1. Create reference field
customerId: a.id(),
// 2. Create relationship field with the reference field
customer: a.belongsTo('Customer', 'customerId'),
}),
Customer: a.model({
name: a.string(),
// 3. Create relationship field with the reference field
// from the Cart model
activeCart: a.hasOne('Cart', 'customerId'),
}),
})
.authorization(allow => allow.publicApiKey());
CREATE A "HAS ONE" RELATIONSHIP BETWEEN RECORDS TO CREATE A "HAS ONE" RELATIONSHIP BETWEEN RECORDS, FIRST CREATE THE PARENT ITEM AND THEN CREATE THE CHILD ITEM AND ASSIGN THE PARENT.
const { data: customer, errors } = await client.models.Customer.create({
name: 'Rene',
});
const { data: cart } = await client.models.Cart.create({
items: ['Tomato', 'Ice', 'Mint'],
customerId: customer?.id,
});
UPDATE A "HAS ONE" RELATIONSHIP BETWEEN RECORDS TO UPDATE A "HAS ONE" RELATIONSHIP BETWEEN RECORDS, YOU FIRST RETRIEVE THE CHILD ITEM AND THEN UPDATE THE REFERENCE TO THE PARENT TO ANOTHER PARENT. FOR EXAMPLE, TO REASSIGN A CART TO ANOTHER CUSTOMER:
const { data: newCustomer } = await client.models.Customer.create({
name: 'Ian',
});
await client.models.Cart.update({ id: cart.id, customerId: newCustomer?.id });
DELETE A "HAS ONE" RELATIONSHIP BETWEEN RECORDS YOU CAN SET THE RELATIONSHIP FIELD TO NULL TO DELETE A "HAS ONE" RELATIONSHIP BETWEEN RECORDS.
await client.models.Cart.update({ id: project.id, customerId: null });
LAZY LOAD A "HAS ONE" RELATIONSHIP
const { data: cart } = await client.models.Cart.get({ id: 'MY_CART_ID' });
const { data: customer } = await cart.customer();
EAGERLY LOAD A "HAS ONE" RELATIONSHIP
const { data: cart } = await client.models.Cart.get(
{ id: 'MY_CART_ID' },
{ selectionSet: ['id', 'customer.*'] }
);
console.log(cart.customer.id);
MODEL A "MANY-TO-MANY" RELATIONSHIP IN ORDER TO CREATE A MANY-TO-MANY RELATIONSHIP BETWEEN TWO MODELS, YOU HAVE TO CREATE A MODEL THAT SERVES AS A "JOIN TABLE". THIS "JOIN TABLE" SHOULD CONTAIN TWO ONE-TO-MANY RELATIONSHIPS BETWEEN THE TWO RELATED ENTITIES. FOR EXAMPLE, TO MODEL A POST THAT HAS MANY TAGS AND A TAG HAS MANY POSTS, YOU'LL NEED TO CREATE A NEW POSTTAG MODEL THAT RETYPESCRIPTSENTS THE RELATIONSHIP BETWEEN THESE TWO ENTITIES.
const schema = a
.schema({
PostTag: a.model({
// 1. Create reference fields to both ends of
// the many-to-many relationshipCopy highlighted code example
postId: a.id().required(),
tagId: a.id().required(),
// 2. Create relationship fields to both ends of
// the many-to-many relationship using their
// respective reference fieldsCopy highlighted code example
post: a.belongsTo('Post', 'postId'),
tag: a.belongsTo('Tag', 'tagId'),
}),
Post: a.model({
title: a.string(),
content: a.string(),
// 3. Add relationship field to the join model
// with the reference of `postId`Copy highlighted code example
tags: a.hasMany('PostTag', 'postId'),
}),
Tag: a.model({
name: a.string(),
// 4. Add relationship field to the join model
// with the reference of `tagId`Copy highlighted code example
posts: a.hasMany('PostTag', 'tagId'),
}),
})
.authorization(allow => allow.publicApiKey());
MODEL MULTIPLE RELATIONSHIPS BETWEEN TWO MODELS RELATIONSHIPS ARE DEFINED UNIQUELY BY THEIR REFERENCE FIELDS. FOR EXAMPLE, A POST CAN HAVE SEPARATE RELATIONSHIPS WITH A PERSON MODEL FOR AUTHOR AND EDITOR.
const schema = a
.schema({
Post: a.model({
title: a.string().required(),
content: a.string().required(),
authorId: a.id(),
author: a.belongsTo('Person', 'authorId'),
editorId: a.id(),
editor: a.belongsTo('Person', 'editorId'),
}),
Person: a.model({
name: a.string(),
editedPosts: a.hasMany('Post', 'editorId'),
authoredPosts: a.hasMany('Post', 'authorId'),
}),
})
.authorization(allow => allow.publicApiKey());
ON THE CLIENT-SIDE, YOU CAN FETCH THE RELATED DATA WITH THE FOLLOWING CODE:
const client = generateClient<Schema>();
const { data: post } = await client.models.Post.get({ id: 'SOME_POST_ID' });
const { data: author } = await post?.author();
const { data: editor } = await post?.editor();
MODEL RELATIONSHIPS FOR MODELS WITH SORT KEYS IN THEIR IDENTIFIER IN CASES WHERE YOUR DATA MODEL USES SORT KEYS IN THE IDENTIFIER, YOU NEED TO ALSO ADD REFERENCE FIELDS AND STORE THE SORT KEY FIELDS IN THE RELATED DATA MODEL:
const schema = a
.schema({
Post: a.model({
title: a.string().required(),
content: a.string().required(),
// Reference fields must correspond to identifier fields.
authorName: a.string(),
authorDoB: a.date(),
// Must pass references in the same order as identifiers.
author: a.belongsTo('Person', ['authorName', 'authorDoB']),
}),
Person: a
.model({
name: a.string().required(),
dateOfBirth: a.date().required(),
// Must reference all reference fields corresponding to the
// identifier of this model.
authoredPosts: a.hasMany('Post', ['authorName', 'authorDoB']),
})
.identifier(['name', 'dateOfBirth']),
})
.authorization(allow => allow.publicApiKey());
MAKE RELATIONSHIPS REQUIRED OR OPTIONAL AMPLIFY DATA'S RELATIONSHIPS USE REFERENCE FIELDS TO DETERMINE IF A RELATIONSHIP IS REQUIRED OR NOT. IF YOU MARK A REFERENCE FIELD AS REQUIRED, THEN YOU CAN'T "DELETE" A RELATIONSHIP BETWEEN TWO MODELS. YOU'D HAVE TO DELETE THE RELATED RECORD AS A WHOLE.
const schema = a
.schema({
Post: a.model({
title: a.string().required(),
content: a.string().required(),
// You must supply an author when creating the post
// Author can't be set to `null`.
authorId: a.id().required(),
author: a.belongsTo('Person', 'authorId'),
// You can optionally supply an editor when creating the post.
// Editor can also be set to `null`.
editorId: a.id(),
editor: a.belongsTo('Person', 'editorId'),
}),
Person: a.model({
name: a.string(),
editedPosts: a.hasMany('Post', 'editorId'),
authoredPosts: a.hasMany('Post', 'authorId'),
}),
})
.authorization(allow => allow.publicApiKey());
Related Skills
headroom
78.9kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
siyuan
47.1kAn open-source, privacy-first, self-hosted knowledge workspace where humans and AI agents work together ๅผๆบใ้็งไผๅ ใ่ชๆ็ฎก็็ฅ่ฏๅทฅไฝ็ฉบ้ด๏ผ่ฎฉไบบไธๆบ่ฝไฝๅจๆญคๅไฝ
ruflo
81.0k๐ The original agent harness. Deploy intelligent multi-player swarms, coordinate autonomous workflows, and build conversational AI systems. Features adaptive memory, self-learning intelligence, federation, vector RAG integration, and native Claude Code / Codex / Hermes and many more Integrated
changelog-video
76.6kTurn a weekly changelog .md into a finished branded changelog video (square 1080, ~45-60s, Annie VO, animated brand background, mock-UI visualizations, lowkey captions)
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit โ see the Safety scan above for what the skill file itself contains.
