agentsclimarketplace

Lucidchart core workflow b

Skill jeremylongshore/claude-code-plugins-plus-skills/plugins/saas-packs/lucidchart-pack/skills/lucidchart-core-workflow-b

425 plugins, 2,810 skills, 200 agents for Claude Code. Open-source marketplace at tonsofskills.com with the ccpi CLI package manager.

Install
npx -y skills add jeremylongshore/claude-code-plugins-plus-skills --skill lucidchart-core-workflow-b

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

What its author says it does

Copied from the file, not written here

'Execute Lucidchart secondary workflow: Data-Linked Diagrams.

The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

3.7 KB, 750 tokens by cl100k_base, as published. Nobody here has run it

Lucidchart — Collaboration & Sharing

Overview

Invite collaborators, configure permissions, and manage real-time editing sessions on Lucidchart documents. Use this workflow when you need to share diagrams with teammates, set granular access controls, track revision history, or manage comments on shared documents. This is the secondary workflow — for diagram creation and data linking, see lucidchart-core-workflow-a.

Instructions

Step 1: Invite Collaborators with Role-Based Permissions

const invites = await client.documents.share(doc.documentId, {
  recipients: [
    { email: '[email protected]', role: 'editor' },
    { email: '[email protected]', role: 'commenter' },
    { email: '[email protected]', role: 'viewer' },
  ],
  message: 'Please review the updated architecture diagram',
  notify: true,
});
invites.forEach(inv =>
  console.log(`Invited ${inv.email} as ${inv.role} — status: ${inv.status}`)
);

Step 2: Configure Document-Level Access Controls

const permissions = await client.documents.updatePermissions(doc.documentId, {
  link_sharing: 'organization',  // 'private' | 'organization' | 'anyone_with_link'
  allow_download: false,
  allow_copy: false,
  require_login: true,
  expiry: '2026-05-01T00:00:00Z',
});
console.log(`Sharing: ${permissions.link_sharing}, expires: ${permissions.expiry}`);
console.log(`Download: ${permissions.allow_download}, Copy: ${permissions.allow_copy}`);

Step 3: Manage Comments and Review Threads

const comments = await client.documents.comments.list(doc.documentId, {
  status: 'open',
  sort: 'created_desc',
});
comments.items.forEach(c =>
  console.log(`[${c.author}] ${c.text} (${c.replies.length} replies)`)
);

// Resolve a comment thread
await client.documents.comments.resolve(doc.documentId, comments.items[0].id, {
  resolution_note: 'Updated per feedback — moved DB to separate VPC',
});

Step 4: Track Revision History

const revisions = await client.documents.revisions.list(doc.documentId, {
  limit: 10,
  sort: 'date_desc',
});
revisions.items.forEach(r =>
  console.log(`v${r.version} by ${r.author} at ${r.timestamp} — ${r.change_summary}`)
);
await client.documents.revisions.restore(doc.documentId, revisions.items[2].id);

Error Handling

IssueCauseFix
401 UnauthorizedInvalid or expired OAuth tokenRe-authenticate via OAuth2 flow
403 Insufficient permissionsUser lacks edit/share accessRequest owner to grant editor role
404 Document not foundWrong documentId or document deletedVerify ID with client.documents.list()
409 ConflictConcurrent edit collisionRetry — Lucidchart auto-merges most conflicts
422 Invalid emailMalformed recipient email addressValidate email format before sending invite

Output

A successful workflow sends collaboration invites with role-based permissions, locks down document access with organization-level controls and expiry dates, and provides a full audit trail of comments, resolutions, and revision history.

Resources

Next Steps

See lucidchart-sdk-patterns for OAuth configuration and webhook setup.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.