> For first: `defs[option].desc` is needed for command 'help' as source of description (etc.)

I misunderstood `defs` as "defaults" when I was reading your change. Now I see it was meant more like "definitions". Could you please rename to prevent further confusion?

> For second:
> I see one correct way to save compatibility - rewrite old config automatically:
> 
> Just want to note that it is difficult to deal with variables such as "part-part".
> Probably it is necessary get rid of it and put all the default variable type "partPart"

How about this solution?

1. Keep "part-part" naming convention in the new code (no change in your current code), leave the "partPart" naming only for the legacy config.json.

2. To implement backwards compatibility, use `oldConfig` values as defaults:

```javascript
var oldConfig = JSON.parse(fs.readFileSync(pathToConfig));

var defs = {
  'save-live-edit': {
    desc: '--save-live-edit=[bool]    Enable local saving of live source`s changes',
    convert: function(value) { return !!value },
    default: oldConfig.saveLiveEdit || false
  },
  // etc.
};
```

Also please note that we use different spacing style in Node Inspector:

```javascript
// wrong
convert: function(value){return parseInt(value, 10)},
// correct (also added missing semicolon)
convert: function(value) { return parseInt(value, 10); },
```