skilldrop-cli 0.16.41 → 0.16.43
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/packs/solution-architect/skills/interactive-diagram/manifest.json +1 -1
- package/packs/solution-architect/skills/interactive-diagram/scripts/build_diagram.py +12 -1
- package/packs/trackers/skills/tracker-brief-sync/manifest.json +1 -1
- package/packs/trackers/skills/tracker-brief-sync/scripts/brief_sync.py +9 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "skilldrop-cli",
|
|
3
|
-
"version": "0.16.
|
|
3
|
+
"version": "0.16.43",
|
|
4
4
|
"description": "Portable AI-agent skills, measured against the agent without them. ADRs, PRDs, runbooks, decks and reviews, installable into Claude Code, Cursor, Kiro, and any IDE that takes custom instructions. One command per skill or per role-based pack.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Sanjay Ananthanarayan",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "interactive-diagram",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.3",
|
|
4
4
|
"description": "Turn a codebase, a system description, a process or a database schema into one self-contained interactive HTML diagram (architecture, workflow, data flow, lifecycle, ERD, sequence, class, tree, timeline or waterfall) where every box and arrow cites the file and line or the words it came from, anything inferred is drawn dashed as an assumption, and each cited line is checked against the repository before the page is written. Laid out automatically, opens offline with no CDN, and exports SVG, PNG and Mermaid. Use when the user asks to \"visualize\", \"map\" or \"make an interactive diagram of\" a repo, a request path, a pipeline, an approval process, a set of tables, an incident's events or a slow trace, or wants a diagram they can click through and share as one file.",
|
|
5
5
|
"entrypoint": "SKILL.md",
|
|
6
6
|
"deps": {
|
|
@@ -2498,6 +2498,17 @@ def load(path):
|
|
|
2498
2498
|
return json.load(fh)
|
|
2499
2499
|
|
|
2500
2500
|
|
|
2501
|
+
|
|
2502
|
+
def shown(path):
|
|
2503
|
+
"""The output path for the reply's first line: relative when it is under the current folder,
|
|
2504
|
+
absolute otherwise. On Windows a path on another drive has no relative form at all."""
|
|
2505
|
+
full = os.path.abspath(path)
|
|
2506
|
+
try:
|
|
2507
|
+
rel = os.path.relpath(full)
|
|
2508
|
+
except ValueError:
|
|
2509
|
+
return full
|
|
2510
|
+
return full if rel.startswith("..") else rel
|
|
2511
|
+
|
|
2501
2512
|
def main(argv=None):
|
|
2502
2513
|
ap = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter)
|
|
2503
2514
|
ap.add_argument("spec", help="diagram spec (JSON)")
|
|
@@ -2569,7 +2580,7 @@ def main(argv=None):
|
|
|
2569
2580
|
receipt["output"] = os.path.abspath(a.out)
|
|
2570
2581
|
receipt["bytes"] = len(out.encode("utf-8"))
|
|
2571
2582
|
receipt["edges"] = len([e for e in spec["edges"] if not e.get("tree")]) or len(spec["edges"])
|
|
2572
|
-
shown_path =
|
|
2583
|
+
shown_path = shown(a.out)
|
|
2573
2584
|
receipt["reply_first_line"] = "[%s](%s)" % (spec["title"].replace("]", ")"), shown_path)
|
|
2574
2585
|
receipt["findings"] = spec.get("_findings", [])
|
|
2575
2586
|
if a.mermaid:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tracker-brief-sync",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "Turn a brief or PRD (such as prd-draft output) into tracker-ready epics and issues — title, description, acceptance criteria, labels and a link back to the doc section — as a CSV for Jira, a mapped CSV for other importers, or gh commands for GitHub; and in reverse, report drift between the doc and the tracker (issues with no section, sections with no issue, issues for Won't-have requirements). Use when the user wants to load a PRD into Jira, Linear or GitHub, says \"create tickets from this brief\", or asks \"does the tracker still match the PRD?\".",
|
|
5
5
|
"entrypoint": "SKILL.md",
|
|
6
6
|
"deps": {
|
|
@@ -334,11 +334,19 @@ def cmd_export(args) -> int:
|
|
|
334
334
|
it.get("parent") or "", by_id[it["parent"]]["title"] if it.get("parent") else "",
|
|
335
335
|
source_line(spec, it, doc_info)])
|
|
336
336
|
text = out.getvalue()
|
|
337
|
+
# Written as built, with no newline translation: the CSV's rows end in \r\n, as CSV
|
|
338
|
+
# requires, and on Windows a text-mode write would turn each into \r\r\n, which an
|
|
339
|
+
# importer reads as a blank row between every issue.
|
|
337
340
|
if args.output:
|
|
338
|
-
args.output
|
|
341
|
+
with open(args.output, "w", encoding="utf-8", newline="") as fh:
|
|
342
|
+
fh.write(text)
|
|
339
343
|
n_epics = sum(1 for it in items if it["type"].lower() == "epic")
|
|
340
344
|
sys.stderr.write("wrote {}: {} items ({} epics, {} others)\n".format(
|
|
341
345
|
args.output, len(items), n_epics, len(items) - n_epics))
|
|
346
|
+
elif hasattr(sys.stdout, "buffer"):
|
|
347
|
+
sys.stdout.flush()
|
|
348
|
+
sys.stdout.buffer.write(text.encode("utf-8"))
|
|
349
|
+
sys.stdout.buffer.flush()
|
|
342
350
|
else:
|
|
343
351
|
sys.stdout.write(text)
|
|
344
352
|
return 0
|